javascript - Javascript 数组如何正确地将值克隆到另一个数组。角 7
问题描述
我有一个组件,我想在数组的开头添加一个值,但出现错误。怎么了,请告诉我?
import { Component, OnInit } from '@angular/core';
import { DaoMockService } from '../../services/dao/dao-mock.service';
import { MatTableDataSource, } from '@angular/material';
@Component({
selector: 'app-dynamic-table',
templateUrl: './dynamic-table.component.html',
styleUrls: ['./dynamic-table.component.css']
})
export class DynamicTableComponent implements OnInit {
data;
model =
{
label: "Table label",
extra: [
"edit",
"select"
],
columns: [
'color',
'desde',
'nombre'
]
}
dataFields: any[] = this.model.columns
tableColumns: any[] = this.model.columns
constructor(private dao: DaoMockService) { }
ngOnInit() {
this.createTable()
}
createTable() {
console.log("dataFields --->", this.dataFields)
// output:
// dataFields ---> (3) ["color", "desde", "nombre"]
console.log("tableColumns --->",this.tableColumns)
// output:
// tableColumns ---> (3) ["color", "desde", "nombre"]
this.tableColumns.unshift("edit")
console.log("dataFields --->", this.dataFields)
// output:
// dataFields ---> (4) ["edit", "color", "desde", "nombre"]
console.log("tableColumns --->",this.tableColumns)
// output:
// tableColumns ---> (4) ["edit", "color", "desde", "nombre"]
this.dao.getAll().subscribe( (res:any) => this.data = new MatTableDataSource(res.data.content))
}
}
this.tableColumns.unshift("edit") 取消转换 dataFields 和
tableColumns 数组
解决方案
如果你这样做
dataFields: any[] = this.model.columns
tableColumns: any[] = this.model.columns
这意味着 dataFields: any[] = tableColumns: any[] = this.model.columns
两个变量都存储对同一个数组的引用
尝试这个
dataFields: any[] = this.model.columns
tableColumns: any[] = [...this.model.columns] // Spread operator creates a new array and assings it to tableColumns
在这里阅读更多
推荐阅读
- angular - 提供刷新令牌后重新发起最后一次失败的请求
- sql-server-2017 - SQL Server 2017 从同一表中的另一列添加具有默认值的新列
- java - 为什么jvm中的“从空间”和“到空间”不相等
- database - 哪些服务器是公共的,哪些是私有的 使用哪些服务器 它是如何工作的
- javascript - 如何将类名从父组件传递给子组件
- python - 如何使用 BeautifulSoup 选择标签周围的上下文词/字符?
- bigcommerce - 增加模板主题上最近查看项目的最大数量
- reactjs - 循环通过 API 拆分数据
- javascript - 我们如何从网页按钮点击事件导航到活动?
- c# - 有没有办法获取特定用户也可以访问的共享点站点?