JavaScript复制数组按值

时间:2015-06-01 21:43:26

标签: javascript arrays json copy

我创建了一个数组并从php文件中接收了另一个数组。 数据很好,但是当我尝试将一个数组复制到另一个数组时,似乎当我更改arr1时,arr2也会被更改。

正在复制"参考"而不是"按价值"因为我需要

我也尝试过slice()但是它没有工作,变量根本没有被复制,甚至没有被复制#34;参考"就这样。

// arr1[0] = "Hey";//this array is coming from another file and the data is fine
var arr2 = [];

arr2[0] = arr1[0];
arr2[0] += "1"; // right now arr1 and arr2 both has "Hey1" in them.

有什么想法吗? 谢谢

2 个答案:

答案 0 :(得分:1)

你可以像这样做一个字符串数组的深层而不是浅层的副本:

var arr2 = [], i = 0;
for (i = 0; i < arr1.length; i++) {
    arr2[i] = String(arr1[i]);
}

编辑:哎呀,深浅交换。

答案 1 :(得分:1)

数组是Javascript中的对象。您可能知道对象是通过引用复制的。你可以看看这里:What is the most efficient way to deep clone an object in JavaScript?