首页 > 解决方案 > Object.assign 输出不正确

问题描述

var data = [{
    price: 1,
    name: 'qq'
  },
  {
    price: 2,
    name: 'ww'
  }
]

var newData = [{
    price: 100
  },
  {
    price: 200
  }
]

Object.assign(data, newData)
console.log(data)

安慰

 [
    {
      price: 100
    },
  {
      price: 200
    }
  ]

输出应该是一个仅替换价格属性的值。

但只是成为价格属性,其他属性消失了,

怎么了?

标签: javascript

解决方案


您需要迭代数组并将对象分配给同一索引处的对象。

var data = [ { price: 1, name: 'qq' }, { price: 2, name: 'ww' }],
    newData = [ { price: 100 }, { price: 200 }];

data.forEach((o, i) => Object.assign(o, newData[i]));

console.log(data);


推荐阅读