Здравствуйте! Скажите, а как можно скопировать в 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();
....так говорят языки %)
Комментариев нет:
Отправить комментарий