如何使用现有的Json对象复制对象并创建新对象?

时间:2016-08-08 10:01:56

标签: javascript jquery angularjs json

我正在尝试创建一个具有范围默认值的新对象。

我发现有复制功能来创建新的独立对象。

angular.copy(source,destication)

但它不适合我。当我控制新对象时,我得到了未定义。

angular.copy($rootScope.answers,$rootScope.default);
console.log($rootScope.answers);
console.log($rootScope.default);

https://plnkr.co/edit/BFGXr7LNAe0KvQipj9JJ?p=preview

在.run方法的app.js中我尝试使用复制功能。 如果我遗漏了任何东西,请告诉我。

1 个答案:

答案 0 :(得分:2)

克隆是一个选项。以下是一个例子:

var deepClonedCopy = jQuery.extend(true, {}, originalData);
var clonedData;
clonedData= $.map(deepClonedCopy, function(el) { return el });

请参阅此文章以获取详细说明:http://heyjavascript.com/4-creative-ways-to-clone-objects/

补充说明:

您需要在执行复制之前定义$rootScope.default={};

$rootScope.default={};
angular.copy($rootScope.answers,$rootScope.default);
console.log($rootScope.answers);
console.log($rootScope.default);

请参阅更新的plnkr:https://plnkr.co/edit/hef6uSHyFRoxs33kRAS8?p=preview

或者你也可以这样做:

$rootScope.default = angular.copy($rootScope.answers);