在JavaScript里合并两个数组有多种实现方式,不同写法在语法简洁度、是否修改原数组以及执行效率上都有区别。实际开发中应根据场景选择最合适的方法。

使用concat方法
concat是数组原型上的方法,它会返回一个新数组,不会改动原来的两个数组,适合不允许副作用的场景。
var a = [1, 2]; var b = [3, 4]; // 返回新数组,a和b保持不变 var c = a.concat(b); console.log(c); // [1, 2, 3, 4] console.log(a); // [1, 2]
使用扩展运算符
ES6引入的扩展运算符可以把数组展开,配合数组字面量即可生成合并后的新数组,语义清晰。
let x = ['a', 'b']; let y = ['c', 'd']; // 新数组包含x和y的所有元素 let z = [...x, ...y]; console.log(z); // ['a', 'b', 'c', 'd']
使用push与扩展运算符修改原数组
如果希望把第二个数组的内容直接追加到第一个数组上,可以用push结合扩展运算符,此时第一个数组会被改变。
let m = [10, 20]; let n = [30, 40]; // 把n的元素追加进m,返回新长度 m.push(...n); console.log(m); // [10, 20, 30, 40]
方法对比
| 方法 | 是否改原数组 | 适用情况 |
|---|---|---|
| concat | 否 | 需要不可变数据 |
| 扩展运算符加字面量 | 否 | 代码可读性优先 |
| push加扩展运算符 | 是 | 明确要更新原数组 |
小结
合并两个数组在JavaScript中并不复杂,关键是根据是否需要保留原数组来选择。若只是取合并结果而不想影响源数据,推荐concat或扩展运算符方式;若业务逻辑本就要扩充原数组,用push配合扩展运算符更直接。
JavaScript数组合并concat修改时间:2026-07-28 11:54:14