问题描述
|
我有以下信息:
城市名称,在本例中为Littelside。它存储在变量“ 0”中
我有一个{}对象数组。每个都包含地址,城市,名称,州和邮政编码
[{\"address\":\"07288 Albertha Station\",**\"city\":\"Littelside\"**,\"created_at\":\"2011-05-25T19:24:51Z\",\"id\":1,\"name\":\"Mr. Emmitt Emmerich\",\"state\":\"Missouri\",\"updated_at\":\"2011-05-25T19:24:51Z\",\"zip\":\"75475-9938\"},{NEXT OBJECT WITH ADDRESS CITY ETC}]
如何使用“ 0”作为搜索词来解析数组,并返回具有匹配城市的数组的地址,城市,州,名称和邮政编码?
谢谢!
解决方法
var myarr = [{\"address\":\"07288 Albertha Station\",\"city\":\"Littelside\",\"created_at\":\"2011-05-25T19:24:51Z\",\"id\":1,\"name\":\"Mr. Emmitt Emmerich\",\"state\":\"Missouri\",\"updated_at\":\"2011-05-25T19:24:51Z\",\"zip\":\"75475-9938\"}];
var city = \'Littelside\';
$.each(myarr,function(key,value){
if(value[\'city\']== city){
alert(\'hello\');
}
})
这是一个工作示例
,您要查找的功能是$.grep()
。
var city=\'Littelside\';
var cucc=$.grep(your_array,function (a) {
return a.city==search;
})[0];
$.grep
仍将返回一个数组,其中所有满足过滤器功能的元素。在这里,我使用ѭ7来获得第一个结果,如果您确定会有一个结果,这很好。因此ѭ8将拥有您要寻找的整个对象。
jsFiddle演示
,我使用的功能。
function arrayIndexOfProp(arr,prop,obj) {
var i = arr.length;
while (i--) {
if (arr[i] && arr[i][prop] === obj) {
return i;
}
}
return -1;
}
var index = arrayIndexOfProp(theArray,\"city\",\"Littelside\");
// do stuff with theArray[index]
,Array.prototype.reduce如
Array.prototype.reduce(
function (prev,current) {
return prev || current.city === \"Littelside\" ? current : null;
})
,循环遍历数组,直到找到与the_array[i].city
匹配的数组。