使用NodeJS从json数组中查找项
我正在尝试从JSON数组中搜索特定项并返回这些项使用NodeJS从json数组中查找项,json,node.js,Json,Node.js,我正在尝试从JSON数组中搜索特定项并返回这些项 result = { FF: { server: 'deskes.com', result: 'succes' }, { server: 'cleantarge.com', result: 'Failed' }, { server: 'fance34.com',
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,它需要是一个数组 这是一个我已经测试过的代码示例,它运行良好
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' } ]
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;
}, {});;
您还可以使用ECMAScript 2015的箭头功能:
rta = result.filter(it => it.server === 'deskes.com');
守则:
var结果=[
{
服务器:“desks.com”,
结果:“成功”
},
{
服务器:'cleantarge.com',
结果:“失败”
},
{
服务器:'fance34.com',
结果:“成功”
},{
服务器:“desks.com”,
结果:“失败”
}
];
var rta=result.filter(it=>it.server==='desks.com');
控制台日志(rta);
/*
结果:
[
{
“服务器”:“desks.com”,
“结果”:“成功”
},
{
“服务器”:“desks.com”,
“结果”:“失败”
}
]
*/
rta = result.filter(it => it.server === 'deskes.com');