var x = [{ a: 1, b: 2}, { a: 11, b: 12}, { a: 31, b: 23}, { a: 51, b: 24}]
你怎么找到的a = 11
?
对于简单的数组,可以这样x.indexOf('1');
做也许解决方案应该是
var a1 = x.indexOf({a: 1});
当然,我想获取值匹配的整个 JSON。
var x = [{ a: 1, b: 2}, { a: 11, b: 12}, { a: 31, b: 23}, { a: 51, b: 24}]
你怎么找到的a = 11
?
对于简单的数组,可以这样x.indexOf('1');
做也许解决方案应该是
var a1 = x.indexOf({a: 1});
当然,我想获取值匹配的整个 JSON。
你可以用一个简单的功能来做到这一点,不需要第三方模块:
var x = [{ a: 1, b: 2}, { a: 11, b: 12}, { a: 31, b: 23}, { a: 51, b: 24}];
function getIndexOf(value){
for(var i=0; i<x.lengh; i++){
if(x[i].a == value)
return i;
}
}
alert(getIndexOf(value)); // output is: 1
您可以在旧版浏览器上使用Array.Filter和 shim 支持。
var x = [{
a: 1,
b: 2
}, {
a: 11,
b: 12
}, {
a: 31,
b: 23
}, {
a: 51,
b: 24
}],
tocomp = 11;
var res = x.filter(function (ob) {
return ob.a === tocomp;
});
结果将是与条件匹配的对象数组。
如果你只关心单个匹配并取回匹配的对象,只需使用 for 循环。
var x = [{
a: 1,
b: 2
}, {
a: 11,
b: 12
}, {
a: 31,
b: 23
}, {
a: 51,
b: 24
}],
tocomp = 11, i, match;
for (i=0, l=x.length; i<l; i++){
if(x[i].a === tocomp){
match = x[i];
break; //break after finding the match
}
}
您可以使用本机 js,也可以使用 underscoreJS 库。 下划线JS