一尘不染

使用Node在JSON数组中搜索项目(最好没有迭代)

node.js

目前,我得到这样的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应用程序的服务器端。


阅读 171

收藏
2020-07-07

共1个答案

一尘不染

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()方法

2020-07-07