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

JavaScript如何用map()等方法处理数组返回page id为键下标为值的结构

你现有代码的问题是仅完成了units下pages数组的扁平化提取,既没有遍历每个pages内部的元素拿到对应id和它在当前pages数组中的下标,也没有组装成你需要的键值对结构。

JS中你写的[ 100000882 => 0 ... ]这种键值对格式属于Map结构,如果你需要普通对象结构也可以参考对应写法:


方案1:使用链式flatMap + Map(完全匹配你预期的=>格式)

const pages = new Map(
  result.flatMap(el => 
    el.units.flatMap(unit => 
      unit.pages.map((page, index) => [page.id, index])
    )
  )
)

输出的Map结构如下:

Map(4) {
  100000882 => 0,
  100000912 => 0,
  100000915 => 1,
  100000919 => 2
}

方案2:使用链式flatMap + 普通对象

const pages = Object.fromEntries(
  result.flatMap(el => 
    el.units.flatMap(unit => 
      unit.pages.map((page, index) => [page.id, index])
    )
  )
)

输出的对象结构如下:

{
  100000882: 0,
  100000912: 0,
  100000915: 1,
  100000919: 2
}

方案3:用forEach循环实现(可读性更高)

const pages = {}
result.forEach(item => {
  item.units.forEach(unit => {
    unit.pages.forEach((page, index) => {
      pages[page.id] = index
    })
  })
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 12:51:03