2015-06-01 2 views
0

Я создал массив и получил другой файл из php. Данные в порядке, но когда я пытаюсь скопировать один массив в другой, кажется, что когда я меняю arr1, тогда arr2 также изменяется.JavaScript Copy Array По значению

Это копируется «по ссылке», а не «по значению», как мне нужно

Я также попробовал кусочек() Butit не работает, переменная не копируется на всех, даже не «с помощью ссылку "таким образом.

// 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

Вы уверены, что * оба * эти массивы имеют «Hey1» в них? –

+0

Это не делает для меня: http://jsfiddle.net/barmar/sxochn11/ – Barmar

+0

Прекрасно работает для меня. –

ответ

1

Вы можете сделать глубокое, а не мелкая, копию массива строк, как это:

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

Редакции: упс, местами глубоким и мелким.

+1

Он не копирует массив нигде. – Barmar

Смежные вопросы