【问题标题】:Passing properties of objects in array B to array A将数组 B 中对象的属性传递给数组 A
【发布时间】:2017-06-19 22:08:12
【问题描述】:

假设我们有一个数组,其中包含许多对象。每个对象都有定义的属性:

arr1 = [
    {name: "Harry", lastname: "Potter"},
    {name: "Charlie", lastname: "Brown"},
    {name: "Frodo", lastname: "Baggins"}
]

我们有第二个数组,其中包含 arr1 中对象的附加属性。 arr2 中的对象与 arr1 的顺序相同:

arr2 = [
    {bestfriend: "Ron"},
    {bestfriend: "Snoopy"},
    {bestfriend: "Sam"}
]

有没有办法将arr2中对象的属性插入arr1?

预期结果是

arr1 = [
    {name: "Harry", lastname: "Potter", bestfriend: "Ron"},
    {name: "Charlie", lastname: "Brown", bestfriend: "Snoopy"},
    {name: "Frodo", lastname: "Baggins", bestfriend: "Sam"}
]

【问题讨论】:

  • 是的,例如一个简单的 for 循环就可以做到。您应该在这里提问之前进行研究。
  • 试试:arr1.forEach((o, i) => Object.assign(o, arr2[i]));

标签: javascript arrays properties javascript-objects


【解决方案1】:
arr1 = [{name: "Harry", lastname: "Potter"}, {name: "Charlie", lastname: "Brown"}, {name: "Frodo", lastname: "Baggins"}];
arr2 = [{bestfriend: "Ron"}, {bestfriend: "Snoopy"}, {bestfriend: "Sam"}];
for (var i=0; i < arr2.length; i++) {
  for (var prop in arr2[i]) {
    arr1[i][prop] = arr2[i][prop];
  }
}