Javascript angular.extend/merge具有数组属性的对象
如果我有这些对象:Javascript angular.extend/merge具有数组属性的对象,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,如果我有这些对象: var first = {arr: ["foo"]}; var second = {arr: ["bar"]}; 然后呢 angular.extend(first, second); 这将是国家: first.arr[0] //"bar" first.arr === second.arr;//true 我想要第一部分,但我不希望数组是相同的引用 当我尝试 angular.merge(first,second); 然后,首先不会发生任何事情。arr first.arr[
var first = {arr: ["foo"]};
var second = {arr: ["bar"]};
然后呢
angular.extend(first, second);
这将是国家:
first.arr[0] //"bar"
first.arr === second.arr;//true
我想要第一部分,但我不希望数组是相同的引用
当我尝试
angular.merge(first,second);
然后,首先不会发生任何事情。arr
first.arr[0]; //"foo
使用
second
的属性扩展first
的正确方法是什么,包括数组,但不具有相同的引用?您可以将两个对象合并到新对象中:
angular.extend({}, first, second);
那么它应该是你想要的:
var first = {arr: ["foo"]};
var second = {arr: ["bar"]};
var result = angular.extend({}, first, second);
console.log(result.arr[0]); // bar
console.log(first.arr === second.arr); // false
问题是,
first
是我在不同地方使用的价值服务,所以我需要首先更新first.arr
。是否有角度。复制我能用的东西?