如果数组包含特定的键值对,如何返回数组中的对象?
如果它给出了所有键值对,而不仅仅是一个,我需要返回它。
例如,
该函数将对象数组作为第一个参数,将具有给定键值对的对象作为第二个参数
whatIsInAName([{ "a": 1, "b": 2 }, { "a": 1 }, { "a": 1, "b": 2, "c": 2 }], { "a": 1, "b": 2 });
应该返回
[{ "a": 1, "b": 2 }, { "a": 1, "b": 2, "c": 2 }]
最佳答案
您可以使用 filter()
和 every()
来完成此操作。
function whatIsInAName(a, b) {
return a.filter(function(e) {
return Object.keys(b).every(function(c) {
return e[c] == b[c]
})
})
}
console.log(whatIsInAName([{ "a": 1, "b": 2 }, { "a": 1 }, { "a": 1, "b": 2, "c": 2 }], { "a": 1, "b": 2 }))
关于javascript - 如果包含键值对,则返回数组中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42437201/