📅  最后修改于: 2023-12-03 15:38:38.500000             🧑  作者: Mango
在编程开发中,经常需要拼接数组。而在某些情况下,我们需要在不改变原始数组的情况下拼接数组,本文将介绍这个问题。
concat()方法可以用来连接两个或多个数组。该方法不会改变现有的数组,而是返回一个新的数组,其中包含来自原始数组的元素。以下是使用concat()方法拼接两个数组的示例代码:
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const arr3 = arr1.concat(arr2);
console.log(arr1); // [1, 2, 3]
console.log(arr2); // [4, 5, 6]
console.log(arr3); // [1, 2, 3, 4, 5, 6]
spread operator(展开运算符)是ES6语法中的一个新特性,可以用来展开可迭代对象,例如数组和对象字面量。使用spread operator可以完全替代concat()方法的功能。以下是使用spread operator拼接两个数组的示例代码:
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const arr3 = [...arr1, ...arr2];
console.log(arr1); // [1, 2, 3]
console.log(arr2); // [4, 5, 6]
console.log(arr3); // [1, 2, 3, 4, 5, 6]
该方法使用slice()方法复制原数组的值,push()方法将新的数组添加到末尾,并返回一个新的数组,而不是修改原数组。以下是使用slice()和push()方法拼接两个数组的示例代码:
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const arr3 = arr1.slice();
arr2.forEach((item) => arr3.push(item));
console.log(arr1); // [1, 2, 3]
console.log(arr2); // [4, 5, 6]
console.log(arr3); // [1, 2, 3, 4, 5, 6]
在本文中,我们介绍了三种方法来在不改变原始数组的情况下拼接数组。这些方法的优点是它们都返回一个新数组,而不是修改原始数组,这可以使你在保留原始数据的同时,操作新的数组。