目前,我得到这样的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

08-19 14:07