Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Глубокая копия (https://javascript.ru/forum/misc/53518-glubokaya-kopiya.html)

dimy44 06.02.2015 20:56

Глубокая копия
 
Есть ли в js стандартный метод получения глубокой копией массива? Чето гугл не помог, пока написал eval(JSON.stringify(array)), перегоняю туда-обратно...

Aetae 07.02.2015 01:16

Если со вложенными, то только так:
JSON.parse(JSON.stringify(array))
Или вручную перебором. Иных вариантов нет.

Erolast 07.02.2015 11:11

В ES6 есть, Object.assign.
http://6to5.org/

nerv_ 07.02.2015 11:20

Erolast, +

Я почему то всегда думал, что данная функция копирует только верхний уровень. Заблуждался :)

Octane 07.02.2015 12:11

эээ вы чего, при чем тут Object.assign?
nerv_, у тебя же o1.foo === o2.foo → true

Erolast 07.02.2015 12:23

А... Глубокое. Такого нет, да.

nerv_ 07.02.2015 12:24

Цитата:

Сообщение от Octane
эээ вы чего, при чем тут Object.assign?
nerv_, у тебя же o1.foo === o2.foo → true

утро, туплю :)

Erolast 08.02.2015 09:47

Да, кстати, для неглубокого копирования массивов в ES6 есть вот такой вот сахарок:
let numbers = [1, 2, 3, 4, 5];
let copy = [...numbers];

http://6to5.org/docs/learn-es6/#default-rest-spread

Aetae 08.02.2015 17:32

Erolast, классический .slice(0) в данном случае и проще и быстрее и удобнее.)
Троеточее слишком крутая штука, чтоб для таких мелочей её юзать.)

Erolast 08.02.2015 18:51

Так очевидней ж.


Часовой пояс GMT +3, время: 12:00.