JS 数组复制的实现方法

JavaScript中的值类型分为基础类型和引用类型,基础类型包括Number、String、Boolean等, 引用类型包括数组和对象。基础类型的值是不可改变的,比较的是真正的值,引用类型的值是可以改变的,比较的是各自的引用。下面的几种方法适用于数组元素中不包括引用类型的值。

方法一: for 循环

1
2
3
4
5
6
7
8

function copy(arr) {
var newArr = [];
for (let i = 0; i < arr.length; i++) {
newArr.push(arr[i]);
}
return newArr;
}

方法二: slice 方法或 concat方法

1
2
3
4

var copy = (arr) => {
return arr.slice(); // return arr.concat();
}

方法三: Array.from 方法

1
2
3
var copy = (arr) => {
return Array.from(arr);
}