javascript - 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
}
]
输出应该是一个仅替换价格属性的值。
但只是成为价格属性,其他属性消失了,
怎么了?
解决方案
您需要迭代数组并将对象分配给同一索引处的对象。
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);
推荐阅读
- python - 在 Django RestFramwork 中覆盖 JSON 数据
- c# - C#如何更新/更改数据库中字符串的特定字母/数字
- php - PHP输出多维数组
- linux - Ubuntu 18.04.1 LTS 是否与 Yocto Sumo 2.5.1 兼容?
- node.js - apache 和 node express 与 node rewrites
- java - Spring Boot 2.0 Web 应用程序不会启动嵌入式 servlet 容器
- vba - MSDataShape 错误,升级到 Windows 10 功能更新 1809 时损坏
- mysql - SQL 获取上一季度的记录,宽限期为 30 天
- .net - LUIS Intent 不返回带有空格的实体的全部值
- c# - 使用浏览器滚动条使 div 滚动