Регистрация
Вход в сайт
Форум
Учебник
Node.JS скринкаст
Стандарт языка
Справочник
Discord чат
Статьи
Тест знаний
Аналоги функций PHP
Курсы javascript
Пользователи
Календарь
Поиск
Сообщения за день
Все разделы прочитаны
Главная
>
Форум
»
Javascript
»
Общие вопросы Javascript
»
Глубокая копия
Опции темы
Искать в теме
#
1
(
permalink
)
06.02.2015, 20:56
dimy44
Интересующийся
Регистрация: 12.01.2015
Сообщений: 15
Глубокая копия
Есть ли в js стандартный метод получения глубокой копией массива? Чето гугл не помог, пока написал eval(JSON.stringify(array)), перегоняю туда-обратно...
#
2
(
permalink
)
07.02.2015, 01:16
Aetae
Тлен
Регистрация: 02.01.2010
Сообщений: 6,595
Если со вложенными, то только так:
JSON.parse(JSON.stringify(array))
Или вручную перебором. Иных вариантов нет.
__________________
29375, 35
#
3
(
permalink
)
07.02.2015, 11:11
Erolast
Профессор
Регистрация: 24.09.2013
Сообщений: 1,436
В ES6 есть,
Object.assign
.
http://6to5.org/
#
4
(
permalink
)
07.02.2015, 11:20
nerv_
junior
Регистрация: 29.11.2011
Сообщений: 3,924
Erolast
, +
Я почему то всегда думал, что данная функция копирует только верхний уровень.
Заблуждался
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
#
5
(
permalink
)
07.02.2015, 12:11
Octane
Регистрация: 10.07.2008
Сообщений: 3,873
эээ вы чего, при чем тут Object.assign?
nerv_
, у тебя же o1.foo === o2.foo → true
#
6
(
permalink
)
07.02.2015, 12:23
Erolast
Профессор
Регистрация: 24.09.2013
Сообщений: 1,436
А...
Глубокое
. Такого нет, да.
#
7
(
permalink
)
07.02.2015, 12:24
nerv_
junior
Регистрация: 29.11.2011
Сообщений: 3,924
Сообщение от
Octane
эээ вы чего, при чем тут Object.assign?
nerv_, у тебя же o1.foo === o2.foo → true
утро, туплю
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
#
8
(
permalink
)
08.02.2015, 09:47
Erolast
Профессор
Регистрация: 24.09.2013
Сообщений: 1,436
Да, кстати, для неглубокого копирования массивов в ES6 есть вот такой вот сахарок:
let numbers = [1, 2, 3, 4, 5]; let copy = [...numbers];
http://6to5.org/docs/learn-es6/#default-rest-spread
#
9
(
permalink
)
08.02.2015, 17:32
Aetae
Тлен
Регистрация: 02.01.2010
Сообщений: 6,595
Erolast
, классический .slice(0) в данном случае и проще и быстрее и удобнее.)
Троеточее слишком крутая штука, чтоб для таких мелочей её юзать.)
__________________
29375, 35
#
10
(
permalink
)
08.02.2015, 18:51
Erolast
Профессор
Регистрация: 24.09.2013
Сообщений: 1,436
Так очевидней ж.
«
Не работает код
|
Управление содержимым ячеек таблицы
»
Искать в теме
Расширенный поиск
Опции темы
Искать в теме
Версия для печати
Отправить по электронной почте
Искать в теме
:
Расширенный поиск
Похожие темы
Тема
Автор
Раздел
Ответов
Последнее сообщение
Это будет копия или реф объекта? (код внутри)
kostyanet
Events/DOM/Window
9
14.11.2014
18:32
копия элемента
neWjs
Events/DOM/Window
18
01.07.2012
14:38
Уменьшенная копия
l-liava-l
Элементы интерфейса
13
04.04.2012
18:41
jquery копия кода не работает в подуровнях сайта
valeragug
jQuery
6
09.02.2011
11:16
© Илья Кантор, 2007-2021
О проекте
-
Обратная связь
-
Архив форума
-
Вверх