目 录CONTENT

文章目录

数组合并:JavaScript数组拼接的那些事

星野集
2025-12-16 / 0 评论 / 0 点赞 / 9 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
本文最后更新于2025-12-16,若内容或图片失效,请留言反馈。 眼看十遍,不如手敲一遍!‌ ‌打开控制台‌ ‌Windows/Linux‌:按 F12 或 Ctrl+Shift+I ‌......Mac‌:按 Option+Command+I 也可右键网页 → 选择「检查」→ 切换到「Console」标签 ‌ ......动手实践‌ ▶ 在闪烁的光标处直接输入教程代码 ▶ 按 Enter 执行代码,立即看到结果 ▶ 用 ↑↓ 方向键快速调出历史命令 ......当需要编写多行代码时: 正常输入第一行代码 按住 Ctrl 键(Mac用户按 Command) 再按 Enter 换行而不执行 代码输入完成后,单独按 Enter 执行全部 ‌.......小技巧‌ 输入 clear() 可清空控制台 错误提示是好朋友!红色报错能帮你快速定位问题 💡 记住:每个程序员都从这里开始你的第一行代码吧! ⚠️ 注意:部分旧版浏览器可能不支持此功能,建议使用Chrome/Edge/Firefox最新版

在JavaScript的世界里,数组就像一排有序的盒子,每个盒子里装着数据。有时候,我们需要把两排甚至多排盒子合为一排,让它们“手拉手”站在一起,这就是数组拼接。看似简单的需求,却藏着几种不同的实现方式,各有各的性格。

一、最“老实”的拼接:concat()方法

concat()是数组自带的一个方法,名字来自“连接”(concatenate)的缩写。它的工作很简单:接收一个或多个数组作为参数,返回一个新数组,里面按顺序装着所有原数组的元素。

举个例子。假设你有两盒积木,一盒是红色积木[1, 2, 3],另一盒是蓝色积木[4, 5, 6],想把它们合起来:

const redBlocks = [1, 2, 3];  
const blueBlocks = [4, 5, 6];  
const allBlocks = redBlocks.concat(blueBlocks);  
console.log(allBlocks); // 输出:[1, 2, 3, 4, 5, 6]  

注意,concat()不会改变原来的数组(redBlocksblueBlocks还是原来的样子),而是悄悄生成一个新数组。如果想拼接多个数组,直接在括号里加就行:redBlocks.concat(blueBlocks, yellowBlocks)

二、最“时髦”的拼接:扩展运算符(...)

ES6引入的扩展运算符(用三个点...表示),像个灵活的“拆包工”。它能把数组里的元素一个个“拆”出来,直接放进另一个数组里。用它拼接数组,代码会变得很简洁。

还是刚才的积木例子:

const redBlocks = [1, 2, 3];  
const blueBlocks = [4, 5, 6];  
const allBlocks = [...redBlocks, ...blueBlocks];  
console.log(allBlocks); // 输出:[1, 2, 3, 4, 5, 6]  

这里的...redBlocks就是把redBlocks数组拆成1, 2, 3...blueBlocks拆成4, 5, 6,然后用逗号隔开,组成新数组。扩展运算符的好处是灵活——你可以在中间插入其他元素,比如[...redBlocks, '分隔线', ...blueBlocks],结果会是[1, 2, 3, "分隔线", 4, 5, 6]

三、最“直接”的拼接:push()配合展开

如果你不想生成新数组,而是想把第二个数组的元素“塞进”第一个数组里,可以用push()方法。push()原本是在数组末尾添加元素,但如果给它一个数组作为参数,它会把这个数组当成一个整体加进去(变成嵌套数组)。这时候,扩展运算符又能派上用场了。

比如,想让红色积木盒直接“吞掉”蓝色积木盒的内容:

const redBlocks = [1, 2, 3];  
const blueBlocks = [4, 5, 6];  
redBlocks.push(...blueBlocks); // 用扩展运算符拆开blueBlocks  
console.log(redBlocks); // 输出:[1, 2, 3, 4, 5, 6]  

这里redBlocks被改变了(原数组长度从3变成6),而blueBlocks不变。如果不用扩展运算符,直接redBlocks.push(blueBlocks),结果会是[1, 2, 3, [4, 5, 6]],这不是我们想要的“手拉手”,而是“套娃”。

四、别混淆:join()不是拼接数组

新手有时会误用join()方法拼接数组。join()的作用是把数组元素用指定符号连成字符串,比如[1,2,3].join('-')会得到"1-2-3"。它返回的是字符串,不是数组,所以别把它当成拼接数组的工具。

选哪种?看你的需求

  • 想保留原数组,生成新数组:用concat()或扩展运算符([...a, ...b])。扩展运算符更简洁,推荐优先用。
  • 想直接修改原数组:用push(...另一个数组)
  • 拼接多个数组或混合元素:扩展运算符最灵活([...a, 0, ...b, ...c])。

数组拼接的本质,是让分散的数据有序相聚。就像整理书架时,把几摞书按顺序码成一排——方法不同,目的都是让它们更整齐地待在一起。理解了这些基础操作,你会发现JavaScript里的数组,其实像一群听话的小伙伴,等着你去安排它们的“队形”。

0
  1. 微信打赏

    qrcode weixin
    1. 微信打赏

      qrcode weixin

评论区