在JavaScript中,拷贝数组有多种方法,每种方法都有其适用的场景,以下是一些常用的拷贝数组的方法:
1、使用slice()
方法
slice()
方法返回一个新的数组对象,包含从开始到结束(不包括结束)选择的数组的一部分深拷贝的数组,原数组不会被改变,语法如下:
let newArray = oldArray.slice(beginIndex, endIndex);
let arr1 = [1, 2, 3, 4, 5]; let arr2 = arr1.slice(); console.log(arr2); // 输出:[1, 2, 3, 4, 5]
2、使用concat()
方法
concat()
方法用于合并两个或多个数组,该方法不会更改现有数组,而是返回一个新数组,其中包含已连接数组的值,语法如下:
let newArray = oldArray.concat(value1, value2, ...);
let arr1 = [1, 2, 3, 4, 5]; let arr2 = [].concat(arr1); console.log(arr2); // 输出:[1, 2, 3, 4, 5]
3、使用Array.from()
方法
Array.from()
方法对一个类似数组(或者可遍历/可迭代的对象)创建一个新的,浅拷贝的数组实例,语法如下:
let newArray = Array.from(oldArray);
let arr1 = [1, 2, 3, 4, 5]; let arr2 = Array.from(arr1); console.log(arr2); // 输出:[1, 2, 3, 4, 5]
4、使用扩展运算符(spread operator)
扩展运算符(…)是ES6引入的一种新语法,用于将一个数组转为用逗号分隔的参数序列,使用扩展运算符可以轻松地复制数组,语法如下:
let newArray = [...oldArray];
let arr1 = [1, 2, 3, 4, 5]; let arr2 = [...arr1]; console.log(arr2); // 输出:[1, 2, 3, 4, 5]
5、使用map()
方法
map()
方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果,语法如下:
let newArray = oldArray.map(function(item) { return item; });
let arr1 = [1, 2, 3, 4, 5]; let arr2 = arr1.map(item => item); console.log(arr2); // 输出:[1, 2, 3, 4, 5]
以上是五种常用的拷贝数组的方法,它们各有优缺点,可以根据实际需求选择使用,需要注意的是,这些方法都是浅拷贝,如果数组中的元素是引用类型(如对象、数组等),那么拷贝的是引用地址,而不是真正的值,如果需要深拷贝,可以使用其他方法,如递归、JSON.stringify()和JSON.parse()等。
原创文章,作者:酷盾叔,如若转载,请注明出处:https://www.kdun.com/ask/308792.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复