javascript - 如何在对象数组中找到一个对象的所有匹配键和值?

标签 javascript arrays object

我需要一个代码,该代码将循环遍历对象数组并检查键和值是否与单独对象中的键和值匹配,然后将包含所有键和值的对象推送到新数组中,因此对于特定情况:

var arr = [{name: 'john', lastname: 'roberts', children: 3},
           {name: 'john', lastname: 'green', children: null}, 
           {name: 'steve', lastname: 'baker', children: 3}];

var obj = {name: 'john', children: 3};

结果将是:

arr2 = [{name: 'john', lastname: 'roberts', children: 3}];

最佳答案

扩展@Psidom版本

var arr = [{name: 'john', lastname: 'roberts', children: 3},
           {name: 'john', lastname: 'green', children: null}, 
           {name: 'steve', lastname: 'baker', children: 3}];

var obj = {name: 'john', children: 3};

console.log(
  arr.filter(x => Object.keys(obj).every( k => x[k] == obj[k]))
);

关于javascript - 如何在对象数组中找到一个对象的所有匹配键和值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45203931/

相关文章:

Javascript 'arguments' 关键字

javascript - JavaScript 中的鼠标坐标?

c++ - 为什么我得到 "Invalid Allocation Size: 4294967295 Bytes"而不是 std::bad_alloc 异常?

php - base64 解码数组中的 2 个项目并仍然输出 json?

javascript - 在javascript中循环访问 "function"对象

java - 如何将一个对象克隆为Object类的对象?

c++ - 如何在完成其他一些任务后在 CTOR 中初始化对象?

javascript - UI-路由器。如何导航到项目中我不想包含为状态的页面?

python - 操作字符串数组时为 "TypeError: only integer scalar arrays can be converted to a scalar index"

javascript - 这个函数如何转换为 Angular (5) 类?