Поведение массивов при копировании.
Добрый день.
Возникла такая проблема: есть у меня некий массив с данными(default_arr), далее я его копирую var arr = default_arr.concat(); далее происходят некоторые изменения с массивом arr, но почему-то эти изменения применяются и к default_arr, что мне совершенно не нужно. Почему так происходит? И как я могу их "разделить"? |
Не вижу проблему
var default_arr = [1,2,3]; var arr = default_arr.concat(); arr.push(6); console.log(arr); console.log(default_arr); |
Цитата:
var a1=[1,2,3,4,5]; var a2=a1.concat(); a2[1]=10; alert(a1); alert(a2); Первый массив не меняется! :) |
Вот и я думаю почему так, ведь проблемы быть не должно, т.к. раньше так тоже делал.
Есть момент о котором забыл упомянуть, массив трехмерный. |
Цитата:
Цитата:
|
Вот, что бывает с ДРУГИМ массивом. ;)
var a1=[1,2,[11,22,33],4,5]; var a2=a1.concat(); a2[1]=10; alert(a1); alert(a2); a2[2][1]='Опа!'; alert(a1); alert(a2); |
Цитата:
Цитата:
|
FoxTrix, вот
var a1=[1,2,[11,22,33],4,5]; var a2=a1.concat(); a2[2]=a1[2].concat(); a2[1]=10; a2[2][1]='new'; alert(a1); alert(a2); "Первый" массив опять не поменялся! |
Цитата:
|
Ок, сам найду решение, спасибо.
|
Часовой пояс GMT +3, время: 18:23. |