在 JavaScript 中,有多种方法可以合并两个数组。以下是几种常用的方法:
1. 使用 concat()
方法
concat()
方法可以连接两个或多个数组,并返回一个新数组,而不会修改现有数组。
javascript复制代码
let array1 = [1, 2, 3]; | |
let array2 = [4, 5, 6]; | |
let mergedArray = array1.concat(array2); | |
console.log(mergedArray); // 输出: [1, 2, 3, 4, 5, 6] |
2. 使用扩展运算符(Spread Operator)
扩展运算符(...
)可以将一个数组的元素展开到另一个数组中,从而实现合并。
javascript复制代码
let array1 = [1, 2, 3]; | |
let array2 = [4, 5, 6]; | |
let mergedArray = [...array1, ...array2]; | |
console.log(mergedArray); // 输出: [1, 2, 3, 4, 5, 6] |
3. 使用 Array.prototype.push.apply()
方法
你可以使用 push.apply()
方法将一个数组的所有元素推入另一个数组中。注意,这种方法会修改第一个数组。
javascript复制代码
let array1 = [1, 2, 3]; | |
let array2 = [4, 5, 6]; | |
Array.prototype.push.apply(array1, array2); | |
console.log(array1); // 输出: [1, 2, 3, 4, 5, 6] |
由于 push.apply()
会修改原数组,如果你不想改变 array1
,可以先复制它。
javascript复制代码
let array1Copy = array1.slice(); // 或者使用 [...array1] | |
Array.prototype.push.apply(array1Copy, array2); | |
console.log(array1Copy); // 输出: [1, 2, 3, 4, 5, 6] | |
console.log(array1); // 输出: [1, 2, 3],原数组未被修改 |
4. 使用循环
你也可以使用循环来手动合并数组,但这通常不是最高效的方法。
javascript复制代码
let array1 = [1, 2, 3]; | |
let array2 = [4, 5, 6]; | |
let mergedArray = []; | |
for (let i = 0; i < array1.length; i++) { | |
mergedArray.push(array1[i]); | |
} | |
for (let i = 0; i < array2.length; i++) { | |
mergedArray.push(array2[i]); | |
} | |
console.log(mergedArray); // 输出: [1, 2, 3, 4, 5, 6] |
5. 使用 reduce()
方法(较少用)
虽然不常见,但你也可以使用 reduce()
方法来合并数组。
javascript复制代码
let array1 = [1, 2, 3]; | |
let array2 = [4, 5, 6]; | |
let mergedArray = array1.reduce((acc, val) => { | |
acc.push(val); | |
return acc; | |
}, []).concat(array2); | |
// 或者更简洁地,但注意这是两步合并,不是直接一步用 reduce 完成 | |
let mergedArrayOneStep = (array1.concat(array2)).reduce((acc, val) => { | |
acc.push(val); | |
return acc; | |
}, []); // 但这里其实直接使用 concat 就足够了,reduce 是多余的 | |
console.log(mergedArray); // 输出: [1, 2, 3, 4, 5, 6] | |
// 注意:上面的 reduce 例子其实是多余的,仅用于展示 reduce 的用法,并不推荐这样合并数组 |
在实际应用中,concat()
和扩展运算符是最常用和推荐的方法,因为它们简单且易于理解。