我有一个像这样的长数组:
var wifiArr = {
"results": {
"fields": [
"Name",
"Address",
"Suburb",
"Latitude",
"Longitude"
],
"rows": [
{
"Name": "7th Brigade Park, Chermside",
"Address": "Delaware St",
"Suburb": "Chermside",
"Latitude": -27.37893,
"Longitude": 153.04461
},
.
. total 55 of those
.
{
"Name": "Annerley Library Wifi",
"Address": "450 Ipswich Road",
"Suburb": "Annerley, 4103",
"Latitude": -27.50942285,
"Longitude": 153.0333218
},
]
}
}
我正在尝试找到每个'姓名','郊区'或'地址',其中包含例如'ann'的名称,并返回这些项目的索引,相对于'行'..就这样我可以稍后使用
访问所有详细信息var wifis = wifiArr.results.rows;
// returned index
console.log(wifis[index].Latitude);
我尝试了几个不同的东西,但没有一个按我的意愿工作(通常他们只给出单个索引)。我唯一可以使用的是普通的Javascript和jQuery。没有其他图书馆(正如其他人之前推荐的那样)。
感谢所有帮助,谢谢
答案 0 :(得分:0)
因此,如果您可以使用jQuery,那么您可以尝试使用jQuery.grep。并在您的代码中
arr = jQuery.grep(wifiArr.results.rows, function(row, index) {
return row.Name.indexOf('ann') > -1
|| row.Address.indexOf('ann') > -1
|| row.Suburb.indexOf('ann') > -1;
});
以下是http://jsfiddle.net/ry5AC/1/
的示例此外,如果您支持较新的浏览器,则可以使用过滤器功能。 MDN上的相关article。它用index参数调用;)