首页 > 解决方案 > 更新克隆列表时如何阻止原始列表更新

问题描述

我想self.lineDetails在更新时停止更新self.modifiedLineDetails

self.modifiedLineDetails = [];
angular.forEach(self.lineDetails, function (value1, index1) {
    var lineDetail = self.lineDetails[index1];
    self.modifiedLineDetails.push(lineDetail)
});
console.log(self.lineDetails)
angular.forEach(self.modifiedLineDetails, function (value10, index10) {
    var modifiedLineDetail = self.modifiedLineDetails[index10];
    if (modifiedLineDetail.SelectedCustomers.length > 0) {
        modifiedLineDetail.SelectedCustomers = 1;
    } else {
        modifiedLineDetail.SelectedCustomers = 0
    }
});
console.log(self.modifiedLineDetails)

以前我只是这样分配它self.modifiedLineDetails = self.lineDetails然后我更新self.modifiedLineDetails但它没有工作所以我尝试每行推送它但self.lineDetails不断更新。

标签: angularjsforeach

解决方案


您应该克隆一个数组,然后修改您的新数组,一种方法是使用扩展操作...

这是它的例子:

var initialarray = [1,2,3,4];
var modification = [...initialarray];
modification.push(5);
console.log(initialarray);
console.log(modification);


推荐阅读