我有一个像这样的Javascript对象...
var strategies = [{
"strategy": {
"category": "war"
}
}, {
"strategy": {
"category": "farming"
}
}]
然后,我有一个数组,指示我想要返回的结果。它可以是以下任意值:
[]
或["war"]
["farming"]
或["war", "farming"]
。如果我们有
[]
,我想不返回任何结果。但是如果["war", "farming"]
我想返回上面的两个结果。如何使用Array.prototype.filter完成此操作?我看到了this post,但无法推理。
strategies.filter((strategy) =>
????
)
谢谢你的帮助。
最佳答案
您可以使用indexOf
检查值:
var categories = ['war', 'farming'];
var filtered = strategies.filter((obj) => {
return categories.indexOf(obj.strategy.category) > -1;
});