如何解决克隆一个数组并使其唯一 - Javascript
我有问题。我有一个对象数组。我需要从中复制一份并使其独一无二,因此当我修改我的新数组时,它不会更改原始数组中的任何内容。
我尝试了以下方法:
let excelData = [...this.state.tableData];
let excelData = this.state.tableData.slice();
let excelData = this.state.tableData.concat();
let excelData = Array.from(this.state.tableData);
这是我的功能:
addDynamicExcelColumns() {
let excelData = [...this.state.tableData];
if (this.state.compRentAttr.length > 0) {
excelData.map((d,idx) => {
this.state.compRentAttr.map((i,idx1) => {
excelData[idx][i.AttrName] = d.optionalAttributes[idx1];
});
});
}
return excelData;
}
解决方法
这是因为您只是在创建一个具有相同元素的新数组。
当您执行 let excelData = [...this.state.tableData];
时,excelData[index]
等于 this.state.tableData[index]
所以,你需要做的是一个深度克隆。
这不是深度克隆的完美方式,但看起来您可以使用 let excelData = JSON.parse(JSON.stringify(this.state.tableData));
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。