简体   繁体   English

如何从第二个中的每个 object 复制技能属性,并根据属性 id 为第一个数组中的每个 object 设置该技能属性? (JS)

[英]How to copy skill property from each object in the 2nd and set that skill property for each object in the 1st array based on property id? (JS)

I have 2 arrays of objects.我有 2 个 arrays 对象。 Both arrays have the same length and the same id properties for each object: arrays 对于每个 object 具有相同的长度和相同的 id 属性:

const arr1 = [{id:1, name:'Dave', email:'email1@gmail.com'}, {id:2, name:'Jane', email:'email2@gmail.com'}]
const arr2 = [{id:1, profession:'programmer', skill:'JS'}, {id:2, profession:'Sales person', skill:'sales'}]

How can I copy skill property for each object from arr2 and set it in the first array of object by checking the related property id?如何从 arr2 复制每个 object 的技能属性,并通过检查相关属性 ID 将其设置在 object 的第一个数组中?

For each value in arr1 , try to find a corresponding value in arr2 and update the skill property accordingly:对于arr1的每个值,尝试在arr2找到对应的值并相应地更新技能属性:

arr1.forEach(v1 => v1.skill = arr2.find(v2 => v1.id === v2.id)?.skill);

Complete snippet:完整片段:

 const arr1 = [ {id:1, name:'Dave', email:'email1@gmail.com'}, {id:2, name:'Jane', email:'email2@gmail.com'} ]; const arr2 = [ {id:1, profession:'programmer', skill:'JS'}, {id:2, profession:'Sales person', skill:'sales'} ]; arr1.forEach(v1 => v1.skill = arr2.find(v2 => v1.id === v2.id)?.skill); console.log(arr1);

You could do something like this.你可以做这样的事情。

 const arr1 = [{id: 1, name: "Dave", email: "email1@gmail.com"}, {id: 2, name: "Jane", email: "email2@gmail.com"}]; const arr2 = [{id: 1, profession: "programmer", skill: "JS"}, {id: 2, profession: "Sales person", skill: "sales"}]; console.log(arr1); arr2.forEach((el2) => { let result = arr1.find((el1) => el1.id === el2.id) if (result) { result.skill= el2.skill; } }) console.log(arr1);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 通过使用第二个数组(JavaScript)中的引用从第一个数组中的每个 object 中提取每个值来创建一个新数组 - Make a new array by extracting each value from each object in the 1st array using the references in the 2nd array (JavaScript) 如何使用方括号为JS对象创建第二级属性 - How to create 2nd level property with for JS object using bracketss 如何在对象数组中设置每个对象的属性? - How to set a property of each object inside an array of objects? 向数组中的每个对象添加属性 - Adding a property to each object in an array 向数组中的每个对象添加属性 - Add property to each object in the array 如何删除数组中每个对象的属性? - How to remove a property for each object in an array? 从对象中提取每个属性的1个 - Extract 1 of each property from object 将嵌套对象的每个对象的索引设置为属性 - Set the Index of each object, of an nested object into an property 如何通过从关联数组中选择项目来基于第一下拉选择绑定第二下拉? - How to bind 2nd dropdown based on 1st dropdown selection by picking item from associative array? 根据与不同数组中 Object 的属性匹配的值,为数组中的每个 Object 添加属性 - Add a Property to Each Object in an Array Based on a Value Matching a Property of an Object in a Different Array
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM