Array.concat() 合并数组

最后更新:2026-09-09

Array.concat() 合并数组

concat 把传入的值或其他数组接在原数组后面,返回一个全新数组;原数组不会被修改。参数可以是任意值,数组会被浅展开一层——嵌套数组里的元素保持原样。

分类数组
ES 版本ES3(1999)

📝 语法

const 新数组 = 数组.concat(值1, 值2, ..., 值N);

⚙️ 参数

valueN要追加到末尾的值或数组;数组参数会被展开一层后逐个追加。

返回值:拼接后的新数组。

是否修改原值:否(返回新值)

▶ 示例

编辑下方代码,点击运行,在输出面板查看结果:

运行结果:

[ 1, 2, 3, 4, 5 ]
[ 1, 2 ]
4
💡 提示 拼接嵌套数组时 concat 只展开一层,想完全展平请用 flat() 或 flatMap()。
⚠️ 警告 concat 的参数是数组时只复制引用——修改嵌套数组里的对象会同时影响原数组和结果。

🌐 浏览器支持

浏览器 ChromeChrome EdgeEdge FirefoxFirefox SafariSafari OperaOpera
Array.concat() v1 v12 v1.5 v3 v10.5
所有现代浏览器均支持
更多实战案例即将上线,敬请期待。

📚 相关教程

❓ 常见问题

Qconcat 和 push 有什么区别?
Apush 把参数作为单个元素追加并修改原数组;concat 会把数组参数展开一层逐个追加并返回新数组。追加另一个数组时两者结果完全不同。
Q如何拼接多个数组?
A链式调用 arr1.concat(arr2, arr3),或用展开符 [...arr1, ...arr2](ES2015),后者还能在中间插入其他元素。
Qconcat 会深拷贝嵌套对象吗?
A不会。concat 是浅拷贝:嵌套的数组或对象只复制引用,修改它们会同时影响新旧两个数组。需要深拷贝请用 structuredClone。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏