Javascript-对象上的条件属性
我有以下两个阵列:Javascript-对象上的条件属性,javascript,object,conditional,Javascript,Object,Conditional,我有以下两个阵列: let arr1 = [{userId:"myUID1", name: "Dave"},{userId: "myUID2", name: "John"}] let arr2 = [{userId: "myUID3", dogs: 5}, {userId:"myUID1", children: 0}] 我想在arr2中找到具有userId==“myUID1”的对象,并检查它是否具有属性children 由于arr2[1]是userId==“myUID1”并且具有子属性,我想将
let arr1 = [{userId:"myUID1", name: "Dave"},{userId: "myUID2", name: "John"}]
let arr2 = [{userId: "myUID3", dogs: 5}, {userId:"myUID1", children: 0}]
我想在arr2
中找到具有userId==“myUID1”
的对象,并检查它是否具有属性children
由于arr2[1]
是userId==“myUID1”
并且具有子属性
,我想将以下属性添加到arr1[0]
:
let arr1 = [{userId:"myUID1", name: "Dave", hasChildren: true},{userId: "myUID2", name: "John"}]
我希望对arr1
中的所有对象重复此操作,如果在arr2
中具有相同userId
的对象持有children
属性,则将haschilds
属性添加到每个对象中
达到我想要的结果的最佳方法是什么?最简单的方法是:
find()方法返回数组中第一个元素的值
满足提供的测试功能。否则未定义
返回
但也可以使用each、forEach等迭代数组
检查解释的代码片段:
让arr1=[{userId:“myUID1”,name:“Dave”},{userId:“myUID2”,name:“John”}];
设arr2=[{userId:“myUID3”,dogs:5},{userId:“myUID1”,children:0}];
//首先,我们在arr2中找到该项。该函数告诉您要查找的内容。
var result2=arr2.find(函数(item){return(item.userId==“myUID1”);});
//如果它被发现了。。。
如果(结果的类型2===“对象”){
//我们在arr1中搜索相同的id
var result1=arr1.find(函数(项){return(item.userId==result2.userId);});
//并将属性添加到arr1的该项中
结果1.hasChildren=true;
//并将其打印出来,以便可以看到添加的属性
console.log(arr1);
}
最简单的方法是:
find()方法返回数组中第一个元素的值
满足提供的测试功能。否则未定义
返回
但也可以使用each、forEach等迭代数组
检查解释的代码片段:
让arr1=[{userId:“myUID1”,name:“Dave”},{userId:“myUID2”,name:“John”}];
设arr2=[{userId:“myUID3”,dogs:5},{userId:“myUID1”,children:0}];
//首先,我们在arr2中找到该项。该函数告诉您要查找的内容。
var result2=arr2.find(函数(item){return(item.userId==“myUID1”);});
//如果它被发现了。。。
如果(结果的类型2===“对象”){
//我们在arr1中搜索相同的id
var result1=arr1.find(函数(项){return(item.userId==result2.userId);});
//并将属性添加到arr1的该项中
结果1.hasChildren=true;
//并将其打印出来,以便可以看到添加的属性
console.log(arr1);
}
您可以按任何方式对其进行迭代。试一试,for
,forEach
,等等,是否使用for循环?你被困在哪里?您可以编写for循环并测试每个元素的userId属性是否相等。你可以用任何你想要的方式迭代它。试一试,for
,forEach
,等等,是否使用for循环?你被困在哪里?您可以编写for循环并测试每个元素的userId属性是否相等。