js对象中的某属性与对象中的不符

js对象中的某属性与对象中的不符


如下:

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;
      }
    },
上一篇:设计模式----模板设计模式


下一篇:2021-07-24