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
相关产品推荐
相关产品推荐

