使用NodeJS从JSON数组中查找项目

3
正在尝试从JSON数组中搜索特定项并返回这些项...
 result = {
      FF: {
        server: 'deskes.com',
        result: 'succes'
    
      },
         {
        server: 'cleantarge.com',
        result: 'Failed'
    
      },
         {
        server: 'fance34.com',
        result: 'success'
    
      },{
        server: 'deskes.com',
        result: 'Failed'
    
      },
    
    }

我有以下 JSON 数据。 我想根据服务器搜索项目。
我使用了以下代码。
var arrFound = result.filter(function(item) {
    return item.server == 'deskes.com';
});

But getting TypeError: Object #<Object> has no method 'filter'

我的搜索数据后生成的JSON将是:
result = {
  FF: {
    server: 'deskes.com',
    result: 'succes'

  },

  {
    server: 'deskes.com',
    result: 'Failed'

  }

}
3个回答

6

您还可以使用ECMAScript 2015的箭头函数版本:

rta =  result.filter(it => it.server === 'deskes.com');    

代码如下:

var result = [
  {
   server: 'deskes.com',
    result: 'succes'

  },
     {
    server: 'cleantarge.com',
    result: 'Failed'

  },
     {
    server: 'fance34.com',
    result: 'success'

  },{
    server: 'deskes.com',
    result: 'Failed'

  }
];



var rta =  result.filter(it => it.server === 'deskes.com');

console.log(rta);

/*
Result:

[
  {
    "server": "deskes.com",
    "result": "succes"
  },
  {
    "server": "deskes.com",
    "result": "Failed"
  }
]

*/


3
< p > filter 方法仅适用于数组,看起来你正在对对象进行调用(从外部括号中)。你可以通过循环遍历键来解决这个问题:

var arrFound = Object.keys(result).filter(function(key) {
    return result[key].server == 'deskes.com';
// to cast back from an array of keys to the object, with just the passing ones
}).reduce(function(obj, key){
    obj[key] = result[key];
    return obj;
}, {});;

2

我认为问题出在你的JSON格式上,它需要是一个数组。

这里有一份代码示例,我已经测试了它,并且能够正常工作。

var result = [
  {
   server: 'deskes.com',
    result: 'succes'

  },
     {
    server: 'cleantarge.com',
    result: 'Failed'

  },
     {
    server: 'fance34.com',
    result: 'success'

  },{
    server: 'deskes.com',
    result: 'Failed'

  }
];

var arrFound = result.filter(function(item) {
  return item.server == 'deskes.com';
});

console.log(arrFound);

// Outputs: [ { server: 'deskes.com', result: 'succes' }, { server: 'deskes.com', result: 'Failed' } ]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接