angular - 自动转换样品中的数据
问题描述
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 改变,但它同时改变!!!!!!我怎么解决这个问题?
解决方案
那是因为 JavaScript 通过引用而不是值来复制数组。
在您的情况下,您可以克隆原始数组并通过执行以下操作对其进行修改:
const a = [...this.data]
然后应用任何转换a
都不会影响原始data
数组。
额外阅读:https ://www.samanthaming.com/tidbits/35-es6-way-to-clone-an-array/
推荐阅读
- python - 如何将多个分区的 .gzip 文件读入 Spark Dataframe?
- c# - 致命错误:公共类中需要公共 Main() 方法
- python - Python:查找所选数字的总和
- arrays - 使用 MongoDB 查找最相似的数组
- angular - 我在一个页面中有一个错误...说 NullInjectoErro,,,No Post Provider
- php - 如何使用 PHP 获取 MySQL 表中的行数?
- r - R Shiny:使用 lapply() 时侧边栏显示不正确
- sql - 用其他表中的数据覆盖表中的所有值
- javascript - Chrome:打印在最新版本中不起作用
- go - CRC - uint64 到两个字节?