Используйте array1.concat()
для дублирования массива вместо передачи ссылки на array1
:
var array1 = [0,1,2,3,4,5];
var array2 = array1.concat();
array2.splice(1,0,1) //add
console.log(array1);
console.log(array2);
array.concat()
может объединять несколько массивов, но если вы передаете пустой аргумент, вы фактически объединяете массив без ничего: клонирование массива.
Обратите внимание, что любые элементы массива и объекта по-прежнему являются ссылками:
var a = [ [1], 2];
var b = a.concat();
b[0][0] = 0;
console.log(b); // gives 0,2
console.log(c); // gives 0,2 too!