Javascript 在数组中搜索部分匹配
我有一个这样的长数组:Javascript 在数组中搜索部分匹配,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一个这样的长数组: var wifiArr = { "results": { "fields": [ "Name", "Address", "Suburb", "Latitude", "Longitude" ], "rows": [ { "Name": "7th Brigade Park, Chermside", "Address": "Delaware St"
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。没有其他库(正如其他人之前推荐的那样)
我将非常感谢所有的帮助,谢谢因此,如果您可以使用jQuery,那么您可以尝试一下。在你的代码里
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;
});
这里有一个例子
此外,如果您支持较新的浏览器,则可以使用过滤功能。与MDN相关。使用索引参数调用它;) 这不是一个数组,而是一个javascript对象(包含数组)。此外:让我们看看你尝试了什么?好的,我可以搜索那个对象吗?或者我必须以某种方式改变它吗?干杯,这并不是我想要的,但我肯定可以使用它:)如果您需要索引,当然可以使用jQuery.inArray函数。我刚刚更新了小提琴。