我正在尝试编写一个接受字符串列表或单个字符串的函数.如果它是一个字符串,那么我想将它转换为只有一个项目的数组.然后我可以循环它而不用担心错误.
那么我该如何检查变量是否是一个数组?
我已经完成了下面的各种解决方案,并创建了一个jsperf测试.
我有以下JavaScript数组的房地产家庭对象:
var json = {
'homes': [{
"home_id": "1",
"price": "925",
"sqft": "1100",
"num_of_beds": "2",
"num_of_baths": "2.0",
}, {
"home_id": "2",
"price": "1425",
"sqft": "1900",
"num_of_beds": "4",
"num_of_baths": "2.5",
},
// ... (more homes) ...
]
}
var xmlhttp = eval('(' + json + ')');
homes = xmlhttp.homes;
Run Code Online (Sandbox Code Playgroud)
我想要做的是能够对对象执行过滤器以返回"home"对象的子集.
例如,我想基于对能够过滤:price,sqft,num_of_beds,和num_of_baths.
问题:如何在JavaScript中执行某些操作,如下面的伪代码:
var newArray = homes.filter(
price <= 1000 &
sqft >= 500 &
num_of_beds >=2 &
num_of_baths >= 2.5 );
Run Code Online (Sandbox Code Playgroud)
注意,语法不必与上面完全相同.这只是一个例子.
我需要过滤一个对象数组,如下所示:
var models = [
{
"family": "Applique",
"power":"8",
"volt":"12",
"color":"4100",
"type":"E27",
"ip":"20",
"dimensions":"230x92"
},
{
"family": "Lanterne",
"power":"20",
"volt":"230",
"color":"2700",
"type":"R7S",
"ip":"44",
"dimensions":"230x92"
},
{
"family": "Applique",
"power":"50",
"volt":"230",
"color":"",
"type":"GU10",
"ip":"20",
"dimensions":"227x227"
}
]
Run Code Online (Sandbox Code Playgroud)
基于这样的对象:
var filter = {
"family":[
"Applique", "Faretto", "Lanterne"
],
"power":{
"less":[
"30"
],
"greater":[
],
"equal":[
]
},
"volt":[
"12", "230"
],
"color":[
],
"type":[
],
"ip":[
"20"
]
"dimensions":[
],
}
Run Code Online (Sandbox Code Playgroud)
因此,在这种情况下,结果可能是:
{
"family": "Applique",
"power":"8",
"volt":"12",
"color":"4100",
"type":"E27",
"ip":"20",
"dimensions":"230x92"
} …Run Code Online (Sandbox Code Playgroud)