js数组是引用类型的值,我们直接将原数组赋值给新的变量,由于指针指向同一个内存地址,修改数组,原数组也会被修改。
如果不想原数组被修改,可以采用以下方法:
var list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var copyList = list.slice(0);
var copyList = [].concat(list);
此时,再修改copyList的值,不会影响list的值。
es6:
es6的Array.from()和扩展语句也可以复制数组,而不会继续引用原数组。
let list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let copyList = Array.from(list);
let copyLIst = [...list];
基础用法链接:
slice
concat
Array.from()
... 扩展语句