首页 > 解决方案 > 如何在不影响原始数组的情况下删除值和键?

问题描述

当我运行下面的代码时,listData(原始数据源)也会受到影响。

如何改进我的代码,以便 downloadData 可以从 listData 复制数据并删除数组中的 id、createdBy、create_at、updatedBy 和 updated_at,但 listData 的数据被保留而不被更改?

let downloadData = this.listData.filteredData;

let downloadDataNum = downloadData.length;

for( let i = 0; i < downloadDataNum; i++ ) {
  delete downloadData[i].id;
  delete downloadData[i].createdBy;
  delete downloadData[i].created_at;
  delete downloadData[i].updatedBy;
  delete downloadData[i].updated_at;
}

标签: javascriptangular

解决方案


 let downloadData = [...this.listData.filteredData];

for( let i = 0; i < downloadData.length; i++ ) {
  delete downloadData[i].id;
  delete downloadData[i].createdBy;
  delete downloadData[i].created_at;
  delete downloadData[i].updatedBy;
  delete downloadData[i].updated_at;
}

你可以试试这个......使用传播运算符你可以将数据传播到downloadData变量而不改变listData


推荐阅读