目前,我得到这样的JSON响应...
{items:[
{itemId:1,isRight:0},
{itemId:2,isRight:1},
{itemId:3,isRight:0}
]}
我想执行类似的操作(伪代码)
var arrayFound = obj.items.Find({isRight:1})
然后将返回
[{itemId:2,isRight:1}]
我知道我可以为每个循环使用a,但是,我试图避免这种情况。当前在Node.JS应用程序的服务器端。
最佳答案
var arrayFound = obj.items.filter(function(item) {
return item.isRight == 1;
});
当然,您也可以编写一个函数来根据对象文字查找条件:
Array.prototype.myFind = function(obj) {
return this.filter(function(item) {
for (var prop in obj)
if (!(prop in item) || obj[prop] !== item[prop])
return false;
return true;
});
};
// then use:
var arrayFound = obj.items.myFind({isRight:1});
这两个函数都使用Arrays上的native
.filter()
method。