簡體   English   中英

Javascript-對象的條件屬性

[英]Javascript - Conditional property on object

我有以下兩個數組:

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"並且具有children屬性,因此我想向arr1[0]添加以下屬性:

let arr1 = [{userId:"myUID1", name: "Dave", hasChildren: true},{userId: "myUID2", name: "John"}]

我希望對arr1所有對象重復此操作,如果在arr2中具有相同userId的對象持有children屬性,則將hasChildren屬性添加到其中的每個對象。

達到我想要的結果的最佳方法是什么?

最簡單的方法是find()方法:

find()方法返回滿足提供的測試功能的數組中第一個元素的值。 否則返回undefined。

但是您也可以使用forEach等對數組進行迭代。

檢查說明的代碼段:

 let arr1 = [{userId:"myUID1", name: "Dave"},{userId: "myUID2", name: "John"}]; let arr2 = [{userId: "myUID3", dogs: 5}, {userId:"myUID1", children: 0}]; //first we find the item in arr2. The function tells what to find. var result2 = arr2.find(function(item){return (item.userId == "myUID1");}); //if it was found... if (typeof result2 === 'object') { //we search the same id in arr1 var result1 = arr1.find(function(item){return (item.userId == result2.userId);}); //and add the property to that item of arr1 result1.hasChildren=true; //and print it, so you can see the added property console.log (arr1); } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM