首页 > 解决方案 > 自动转换样品中的数据

问题描述

export class AppComponent  {
  constructor(){
    this.test()
  }
  data:any=[1,2,3,4,5]
  test(){
    const a=this.data;
    a.splice(0,1);
    console.log('a= ' +a);
    console.log('data= '+this.data)
  }
}

安慰:

 a= 2,3,4,5
 data= 2,3,4,5

我只希望变量 a 改变,但它同时改变!!!!!!我怎么解决这个问题?

标签: angular

解决方案


那是因为 JavaScript 通过引用而不是值来复制数组。

在您的情况下,您可以克隆原始数组并通过执行以下操作对其进行修改:

const a = [...this.data]

然后应用任何转换a都不会影响原始data数组。

额外阅读:https ://www.samanthaming.com/tidbits/35-es6-way-to-clone-an-array/


推荐阅读