Javascript 将数组的值与对象数组的键进行比较
正如问题所指出的,我需要将这种类型的数组[1,2,3]的值与对象数组[{id:1,name:'jhon'},{id:2,name:'max'}]的键的值进行比较。在这种情况下,我想将其与id键的值进行比较,我编写了以下我需要的示例: 如果我有这个对象数组:Javascript 将数组的值与对象数组的键进行比较,javascript,arrays,Javascript,Arrays,正如问题所指出的,我需要将这种类型的数组[1,2,3]的值与对象数组[{id:1,name:'jhon'},{id:2,name:'max'}]的键的值进行比较。在这种情况下,我想将其与id键的值进行比较,我编写了以下我需要的示例: 如果我有这个对象数组: [ { id: 1 name: 'jhon' }, { id: 2, name: 'max' }, { id: 3, name: 'fer'
[
{
id: 1
name: 'jhon'
},
{
id: 2,
name: 'max'
},
{
id: 3,
name: 'fer'
}
]
我有一个数组:
[1,2,3,4,5]
我需要比较它们并获得对象数组中不存在的值,在上一个示例中,值4和5不存在于对象数组中,因此我需要获得一个新的数组或相同的数组,但与不存在的值比较,[4,5]
注意:如果我有一个数组,这也应该起作用,只对不存在的数字,例如[8,9],它们应该返回相同的值
编辑:可以在新数组中获取仅存在于对象数组中的值。例如,对于前面代码的数组:
[{id: 1, name: 'jhon'}, {id: 2, name: 'max'}, {id: 3, name: 'fer'}]
现在这个数组将有以下值[1,4,5],根据前面的答案,我得到了下面的数组[4,5],这是正确的。如何获取新数组中的值[2,3]。使用arr1的ID创建一个数组。然后,通过检查是否设置了以下数字来arr2:
const arr1=[{id:1,name:jhon},{id:2,name:max},{id:3,name:fer}];
常数arr2=[1,2,3,4,5];
常数arr3=[1,5];
常数差=arr1,arr2,键=>{
const arr1Values=new Setkey?arr1.map{[key]:v}=>v:arr1;
返回arr2.filtern=>!arr1Values.haven;
};
//基本体数组和对象数组
console.logdifferenceaarr1,arr2,'id';
//两个基元数组
console.logdifferencearr3、arr2 使用从arr1的ID创建一个。然后,通过检查是否设置了以下数字来arr2:
const arr1=[{id:1,name:jhon},{id:2,name:max},{id:3,name:fer}];
常数arr2=[1,2,3,4,5];
常数arr3=[1,5];
常数差=arr1,arr2,键=>{
const arr1Values=new Setkey?arr1.map{[key]:v}=>v:arr1;
返回arr2.filtern=>!arr1Values.haven;
};
//基本体数组和对象数组
console.logdifferenceaarr1,arr2,'id';
//两个基元数组
console.logdifferencearr3、arr2 您可以使用筛选和查找
设arr1=[{id:1,名称:'jhon'},{id:2,名称:'max'},{id:3,名称:'fer'}]
设arr2=[1,2,3,4,5];
让结果=arr2.filtero=>!arr1.findx=>x.id==o;
console.logresult 您可以使用筛选和查找
设arr1=[{id:1,名称:'jhon'},{id:2,名称:'max'},{id:3,名称:'fer'}]
设arr2=[1,2,3,4,5];
让结果=arr2.filtero=>!arr1.findx=>x.id==o;
console.logresult 您可以使用筛选器检查arr2中元素的id属性是否与arr2中的当前元素匹配
答复
[8,9]您可以使用过滤器检查arr2中元素的id属性是否与arr2中的当前元素匹配
答复
[8,9]您可以使用。过滤器和。包括:
设arr1=[{id:1,名称:'jhon'},{id:2,名称:'max'},{id:3,名称:'fer'}],
arr2=[1,2,3,4,5];
让结果=
ids=>arr2.filtern=>!id.includesn
arr1.map{id}=>id;
console.logresult 您可以使用.filter和.includes:
设arr1=[{id:1,名称:'jhon'},{id:2,名称:'max'},{id:3,名称:'fer'}],
arr2=[1,2,3,4,5];
让结果=
ids=>arr2.filtern=>!id.includesn
arr1.map{id}=>id;
console.logresult 您可以获取具有给定ID的集合,然后删除对象的ID。稍后返回带有剩余ID的数组 var data=[{id:1,名称:'jhon'},{id:2,名称:'max'},{id:3,名称:'fer'}], ids=[1,2,3,4,5], result=Array.fromdata.reduces,{id}=>s.deleteid,s,新的setId; console.logresult;
.as console wrapper{max height:100%!important;top:0;}您可以使用给定的ID获取一个集合,然后删除对象的ID。稍后返回带有剩余ID的数组 var data=[{id:1,名称:'jhon'},{id:2,名称:'max'},{id:3,名称:'fer'}], ids=[1,2,3,4,5], result=Array.fromdata.reduces,{id}=>s.deleteid,s,新的setId; console.logresult;
.作为控制台包装器{max height:100%!important;top:0;}great对我帮助很大,现在我正在学习javascripts,请在我的问题中再添加一个细节我希望你能帮助我thanksgreat对我帮助很大,现在我正在学习javascripts,请在我的问题中再添加一个细节我希望你能帮助我thanksgreat!这对我帮助很大lot@FeRcHo很乐意帮忙。我还添加了新问题的答案更新。太好了!这对我帮助很大lot@FeRcHo很乐意帮忙。我还添加了新问题更新的答案。
const arr1 = [{"id":1,"name":"jhon"},{"id":2,"name":"max"},{"id":3,"name":"fer"}];
const arr2 = [8,9];
var diffArray = arr2.filter(x => !arr1.filter(y => y.id === x).length);
console.log(diffArray);