javascript - 具有数组属性的 angular.extend/merge 对象

标签 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 的属性(包括数组)扩展 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

关于javascript - 具有数组属性的 angular.extend/merge 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32734192/

相关文章:

javascript - d3 : my code will create 1 chart but not 2

javascript - 我正在尝试使用 javaScript 验证移动设备,但它不起作用

javascript - 表单提交的通用jquery函数

javascript - ng-options 与 ng-init 无法正常工作

angularjs - 是否可以在 Angular JS 的指令中获取当前的 $location ?

javascript - 如果 margin-left == 200px 则触发事件;

javascript - 为什么反序列化后数组后面有文本 "1"

c - 如何在C中将数组A的指针设置为指向数组B

arrays - 使用 D3js v4 的带有 d3.hierarchy 的旭日图数据

javascript - 如何正确控制 radio 并使用 Angular 选择值