Javascript 如何在对象数组中找到一个对象的所有匹配键和值?
我需要一个代码,该代码将在对象数组中循环,并检查键和值是否与单独对象中的键和值匹配,然后将包含所有键和值的对象推送到新数组中,因此对于特定情况:Javascript 如何在对象数组中找到一个对象的所有匹配键和值?,javascript,arrays,object,Javascript,Arrays,Object,我需要一个代码,该代码将在对象数组中循环,并检查键和值是否与单独对象中的键和值匹配,然后将包含所有键和值的对象推送到新数组中,因此对于特定情况: var arr = [{name: 'john', lastname: 'roberts', children: 3}, {name: 'john', lastname: 'green', children: null}, {name: 'steve', lastname: 'baker', childre
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}];
在阵列上使用:
var arr=[{name:'john',lastname:'roberts',children:3},
{name:'john',lastname:'green',children:null},
{姓名:'steve',姓氏:'baker',孩子们:3}];
var obj={name:'john',children:3};
console.log(
arr.filter(x=>x.name==obj.name&&x.children==obj.children)
);代码>在阵列上使用:
var arr=[{name:'john',lastname:'roberts',children:3},
{name:'john',lastname:'green',children:null},
{姓名:'steve',姓氏:'baker',孩子们:3}];
var obj={name:'john',children:3};
console.log(
arr.filter(x=>x.name==obj.name&&x.children==obj.children)
);代码>正在扩展@Psidom版本
var arr=[{name:'john',lastname:'roberts',children:3},
{name:'john',lastname:'green',children:null},
{姓名:'steve',姓氏:'baker',孩子们:3}];
var obj={name:'john',children:3};
console.log(
arr.filter(x=>Object.keys(obj.every)(k=>x[k]==obj[k]))
);代码>正在扩展@Psidom版本
var arr=[{name:'john',lastname:'roberts',children:3},
{name:'john',lastname:'green',children:null},
{姓名:'steve',姓氏:'baker',孩子们:3}];
var obj={name:'john',children:3};
console.log(
arr.filter(x=>Object.keys(obj.every)(k=>x[k]==obj[k]))
);
但是如果我不知道键或者有另一个具有不同键名的对象数组呢?你能举个例子吗?obj
中的键是否始终存在于数组中对象的键中?是的,在第一个示例中,我们有name,子键,在另一个示例中,我们有年龄、身高、体重等(在数组和obj中)。所以我不能使用键名,我需要一个通用的解决方案来解决这两种情况。我认为@JarekKulikowski的答案正是你所需要的。但是如果我不知道键或有另一个具有不同键名的对象数组呢?你能举个例子吗?obj
中的键是否始终存在于数组中对象的键中?是的,在第一个示例中,我们有name,子键,在另一个示例中,我们有年龄、身高、体重等(在数组和obj中)。所以我不能使用密钥名,我需要一个通用的解决方案来解决这两种情况。