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

JavaScript/TypeScript实现为嵌套树形数组添加id_parent字段

实现方案

你可以用递归遍历树形结构的方式实现需求,以下是JavaScript版本的两种实现:

方案1:直接修改原数组

function addParentId(tree, parentId = null) {
  tree.forEach(node => {
    node.id_parent = parentId
    if (Array.isArray(node.children) && node.children.length > 0) {
      addParentId(node.children, node.id)
    }
  })
  return tree
}

// 调用示例
const result = addParentId(data)

方案2:不修改原数组,返回全新处理后的数组

function addParentId(tree, parentId = null) {
  return tree.map(node => {
    const newNode = { ...node, id_parent: parentId }
    if (Array.isArray(newNode.children) && newNode.children.length > 0) {
      newNode.children = addParentId(newNode.children, newNode.id)
    }
    return newNode
  })
}

// 调用示例
const result = addParentId(data)

实现效果

处理后的数据完全符合预期:

  • 最外层根节点的id_parent值为null
  • 所有子节点的id_parent值为其直接父节点的id属性值

内容的提问来源于stack exchange,提问作者César Rodríguez Reyes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 22:15:09