我创建了一个数组并从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.
有什么想法吗? 谢谢
答案 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?