Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在对象数组中找到一个对象的所有匹配键和值?_Javascript_Arrays_Object - Fatal编程技术网

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中)。所以我不能使用密钥名,我需要一个通用的解决方案来解决这两种情况。