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

如何用Lodash将GraphQL响应中的对象转为目标嵌套数组结构

解决Lodash处理GraphQL响应的结构转换问题

要保持两层数组结构,直接用map替代flatMap即可,链式调用修改为:

_.chain(resp.data.data.projects.nodes).map('ciVariables.nodes').value()

原因说明:

  • flatMap的作用是先映射再扁平化一层,所以你用flatMap('ciVariables.nodes')时,会把每个ciVariables.nodes数组里的元素都提取到顶层数组,破坏了原有的两层结构。
  • map则是单纯对原数组的每个元素做映射转换,将每个元素替换为对应的ciVariables.nodes数组,完美保留了两层数组的结构,正好符合你的需求。

举个简单的示例验证:
假设原响应数据结构如下:

const resp = {
  data: {
    data: {
      projects: {
        nodes: [
          { ciVariables: { nodes: [{ id: 1 }, { id: 2 }] } },
          { ciVariables: { nodes: [{ id: 3 }, { id: 4 }] } }
        ]
      }
    }
  }
};

使用修改后的链式调用,得到的结果是:

[[{ id: 1 }, { id: 2 }], [{ id: 3 }, { id: 4 }]]

完全符合你需要的两层数组结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 04:49:51