当前位置:首页 > 行业动态 > 正文

js拷贝数组怎么操作出来

在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()等。

0