javascript - 如果包含键值对,则返回数组中的对象

标签 javascript arrays loops object properties

如果数组包含特定的键值对,如何返回数组中的对象?

如果它给出了所有键值对,而不仅仅是一个,我需要返回它。

例如,

该函数将对象数组作为第一个参数,将具有给定键值对的对象作为第二个参数

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/

相关文章:

javascript,反复查找DOM元素

arrays - 如何使用包含数组名称的第二个变量来引用现有的 bash 数组?

javascript - 如何检查 jqueryUI 自动完成下拉框是否打开

javascript - jquery mobile 将我的屏幕大小设置为 100%

c - 在 C 中访问动态数组的部分?

java - Android 保存和加载字符串和 boolean 值的 1D 和 2D 数组

javascript - 如何检查我的浏览器是否支持 Javascript 中的 HSL 颜色?

javascript - javascript 装饰器中的目标缺少其属性

arrays - 将数组传递给erlang中的函数

java - 程序不断打印 "keep playing"而不是读取代码