从对象中删除属性是从具有相似名称的另一个对象中删除该属性

时间:2014-10-29 07:49:22

标签: javascript angularjs

我有两个对象。一个是主数据,另一个是类似的对象,但包含我正在使用的某些属性,并且是主数据的子集。请在下面找到两个对象:

$scope.masterData = {

"StoresForOrgs": {
    "PPP0001188": ["007071","007073","007079"],
    "PPP0001189": ["007075","0070756","0070789"],
    "PPP0001190": ["007075","0070756","0070789", "00707893", "00707899"]
    }
}

$scope.masterDataForDisplay = {

    "StoresForOrgsDisplay": {


        }
}

如果在我的代码中我做了

$scope.masterDataForDisplay =    $scope.masterData;

这是链接两个对象,如果我更改masterDataForDisplay,它也会更改masterData。现在我明白比较这两个会创建相同的引用,这可以通过使用

来避免

试试这个

$scope.masterDataForDisplay = JSON.parse(JSON.stringify($scope.masterData));

但即使代码未执行,也会发生这种情况。对象是否在之前被初始化?

1 个答案:

答案 0 :(得分:1)

使用它:

$scope.masterDataForDisplay = angular.copy($scope.masterData);

而不是

$scope.masterDataForDisplay = $scope.masterData;

copy():创建源的深层副本,该副本应该是对象或数组。所以他们不共享相同的参考