【发布时间】:2018-03-21 09:10:07
【问题描述】:
我有一个复杂的嵌套对象数组,我必须为此返回一个基于attributeScore > 90 的新数组(过滤器)。我将如何使用 javascript .filter 或 lodash _.find() 或 _.some 函数来完成此操作?
trucks:[
{wheels:[
{name:"xyz",
mechanics: [
{engine:'50cc',
attributeScore:100},
{....} ,{...}
]
},
{name:"gcd",
mechanics: [
{engine:'80cc',
attributeScore:90},
{....} ,{...}
]
},
,{...}
]}
,{...}
]
我试过这样的过滤器
const fil = trucks.filter(function(item) {
return item.wheels.some(function(tag) {
return tag.mechanics.some(function(ques){
return ques.attributeScore <= 25;
});
});
});
但它返回一个空数组。我预期的返回数组类型应该是
trucks:[
{wheels:[
{name:"xyz",
mechanics: [
{engine:'50cc',
attributeScore:100},
{....} ,{...}
]
},
,{...}
]}
]
任何帮助表示赞赏!
【问题讨论】:
-
你必须更清楚。你究竟会过滤什么?您能否发布一个示例,说明您在过滤此示例后会得到什么?
-
@OscarPaz 。抱歉现在更新了问题
标签: javascript arrays underscore.js lodash