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

如何使用JS解构获取嵌套数组最内层长度 现有写法返回异常如何修复

问题原因

  1. 解构层级匹配错误:你当前的解构模式[,[[,objects]]]仅能提取到data每个子项中第二层数组的第一个元素(也就是'a'对应的对象数组),解构不会自动遍历同层级的所有元素,因此你漏掉了'b'等其他分类对应的对象数组。
  2. 方法拼写错误:JS数组的遍历方法是大小写敏感的forEach,你原代码中的小写foreach会直接抛出语法错误。

修复方案

保留解构写法的前提下,你需要嵌套一层遍历覆盖所有分类项,调整后的代码如下:

// 外层遍历data的每个条目,解构跳过序号位,拿到分类数组
data.forEach(([, categoryList]) => {
  // 内层遍历每个分类,解构跳过分类名字段,拿到最内层对象数组
  categoryList.forEach(([, objects]) => {
    console.log(objects.length)
  })
})

如果要保留你原有的单函数赋值写法,也可以改成如下形式:

const foo = ([, categoryList]) => categoryList.forEach(([, objects]) => console.log(objects.length));
data.forEach(foo);

附加问题解答

这种语法确实是数组解构赋值,属于ES6新增的解构语法分支,和对象解构的核心逻辑一致,只是数组解构按索引顺序匹配值,你可以用逗号跳过不需要的索引位,直接提取目标位置的值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:18:03