Страницы

Поиск по вопросам

среда, 17 октября 2018 г.

Скопировать значение массива, а не ссылку на него

Здравствуйте! Скажите, а как можно скопировать в JavaScript массив так, чтобы, при изменении копии, оригинал не менялся? Например:
a = [0, 1, 2, 3] b = clone(a) b[0] = 10 a[0] == 0 // => true
Можно ли реализовать такой метод clone?


Ответ

var a = [0, 1, 2, 3] var b = a.slice(0); b[0] = 10; console.log('a: ' + a); console.log('b: ' + b);
slice - возвращает поверхностную копию части массива в новый объект массива.
В данном случае с начала и до конца

Технически slice - наибыстрый путь, ОДНАКО это будет даже еще быстрее если добавить 0 - как начало "отрезания"
myArray.slice(0);
быстрее, чем
myArray.slice();
....так говорят языки %)

Комментариев нет:

Отправить комментарий