目前,我得到这样的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});
这两个函数都使用数组上的本机.filter()方法。
.filter()