js对象中的某属性与对象中的不符
如下:
- 问题代码:
其中子组件传过来的数据data为数组对象,this.dataSource定义为数组,用来保存数组对象。
getOriginData(data) {
console.log("子组件传过来的数据data", data);
let dataTemp = this.dataSource.concat(data);
for (let i = 1, a=0; a < dataTemp.length; i++,a++) {
dataTemp[a].key = i;
console.log("dataTemp[a].key",dataTemp[a].key);
console.log("dataTemp[a]",dataTemp[a]);
}
this.dataSource = dataTemp;
},
- 出现时机:在对数组对象中的对象某属性重新赋值时,发生如上问题。
- 原因:对象的浅拷贝
- 解决方法:遍历时挨个赋值,如下:
getOriginData(orderList) {
console.log("传递过来的数据有::::", orderList);
for (let i = 0; i < orderList.length; i++) {
let data = {
key: orderList.key, // 棚号
};
this.dataSource.push(data);
}
for (let i = 0; i < this.dataSource.length; i++) {
this.dataSource[i].key = i + 1;
}
},