-
RISEBY
您需要迭代该数组,并将该对象分配给具有相同索引的对象。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);
-
慕斯王
这是因为您将完全覆盖其他属性,就像data数组一样,合并是基于数组的索引进行的。因此0,data数组的索引将被匹配0的newData数组的索引替换,因此整个对象将被替换。根据MDN文档:如果目标对象中的属性具有相同的键,则它们将被源中的属性覆盖。因此,这里将数组索引视为匹配键。对于数组中的每个条目,尝试合并如下所示的对象:const data = [ { price: 1, name: 'qq' }, { price: 2, name: 'ww' }];const newData = [ { price: 100 }, { price: 200 }];const res = data.reduce((acc, ele, idx) => acc.concat(Object.assign({}, ele, newData[idx])),[]);console.log(res)
-
杨魅力
遍历data和使用Object.assign,或使用传播...:const data = [ { price: 1, name: 'qq' }, { price: 2, name: 'ww' }];const newData = [ { price: 100 }, { price: 200 }];data.map((o, i) => Object.assign(o, newData[i]));console.log(data);