具有数组属性

时间:2015-09-23 08:07:52

标签: 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);

然后first.arr

没有任何反应
first.arr[0]; //"foo

使用包含数组的first属性扩展second的正确方法是什么,但没有相同的引用?

1 个答案:

答案 0 :(得分:1)

您可以将两个对象合并到新对象中:

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