You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS中push数组时spread operator的作用及[Array(x)]含义解析

数组推入嵌套问题与扩展运算符作用解析

1. 什么是[Array(x)]?

这是浏览器控制台对嵌套数组的简化显示方式,x代表嵌套子数组的长度。当数组里的元素本身是另一个数组时,控制台为了避免输出内容过长,会用这种折叠形式展示,点击就能展开看到子数组的具体元素。

2. 第一种写法为什么会出现这种情况?

看你的代码:arr.push([newArr])
这里你创建了一个嵌套数组[newArr],然后把它推入arr。假设newArr = [1,2,3],那么[newArr]就是[[1,2,3]]——这个新数组的唯一元素就是原newArr。推入后arr的结构变成[ [[1,2,3]] ],此时res[0]就是那个包含newArr的外层数组,控制台会用[Array(3)]来表示这个外层数组里的子数组(长度为3),所以你必须通过res[0][0]才能拿到原newArr。

3. 扩展运算符为什么能消除嵌套?

第二种写法arr.push([...newArr])里的...newArr是扩展运算符,它的作用是把原newArr的所有元素逐个展开,直接填充到新创建的数组里。还是用newArr = [1,2,3]举例,[...newArr]等价于[1,2,3]——和原数组内容完全一致,但不是嵌套结构。推入arr后,arr的结构变成[ [1,2,3] ],所以res[0]就是这个平级的数组,控制台直接显示为(3) [1, 2, 3],不需要再嵌套访问。

简单总结:

  • [newArr]是创建一个包含原数组的嵌套数组
  • [...newArr]是创建一个和原数组元素相同的平级数组

内容的提问来源于stack exchange,提问作者Jonathan Scion

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 17:05:20