javascript合并数组推荐用展开运算符(...),语法简洁且不修改原数组;concat()兼容性好但不自动扁平化嵌套数组;去重可用set结合展开运算符;修改原数组可用push()加展开运算符。

JavaScript 合并数组有多种方法,最常用的是 concat() 和展开运算符(...),两者都支持合并两个或多个数组,且不修改原数组。
用展开运算符(推荐)
ES6+ 中最简洁、直观的方式,适合大多数场景:
- 语法简单:
[...arr1, ...arr2, ...arr3] - 可与其他元素混合使用,比如
[...arr1, 'new', ...arr2] - 返回新数组,原数组不变
示例:
const b = [3, 4];
const c = [5];
const merged = [...a, ...b, ...c]; // [1, 2, 3, 4, 5]
用 concat() 方法
兼容性最好,适用于需要支持旧浏览器的项目:
- 可传入多个数组或单个值:
arr1.concat(arr2, arr3, 4, 5) - 也返回新数组,不改变原数组
- 注意:如果传入嵌套数组,不会自动扁平化(如
[1].concat([[2, 3]])得到[1, [2, 3]])
示例:
const a = [1, 2];const b = [3, 4];
const c = [5];
const merged = a.concat(b, c); // [1, 2, 3, 4, 5]
合并并去重(进阶需求)
如果需要合并后去除重复项,可结合 Set:
const b = [2, 3, 4];
const uniqueMerged = [...new Set([...a, ...b])]; // [1, 2, 3, 4]
注意:Set 去重基于严格相等(===),对对象无效;如需对象去重,需额外逻辑处理。
修改原数组?用 push() + 展开运算符
若想直接往第一个数组末尾追加其他数组内容(改变原数组):
arr1.push(...arr2, ...arr3)- 注意:不能直接写
arr1.push(arr2),否则会把整个数组当一个元素推入
示例:
const a = [1, 2];const b = [3, 4];
a.push(...b); // a 变为 [1, 2, 3, 4]
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











