gpt4 book ai didi

javascript - JS中如何将json转为树形数组?

转载 作者:行者123 更新时间:2023-11-30 19:29:17 28 4
gpt4 key购买 nike

我想将此 json/对象转换为下面的特定结构,以允许我使用 treeList 组件。

我试图构建一个递归函数,但我还没有找到解决方案。感谢您的帮助

const data = {
parent1: {
child1: { bar: "1" },
child2: "2"
},
parent2: {
child1: "1"
}
}

const treeData = [
{
title: "parent1",
key: "parent1",
children: [
{
title: "child1",
key: "child1",
children: [{ title: "bar", key: "bar", value: "1" }]
},
{
title: "child2",
key: "child2",
value: "2"
}
],
},
{
title: "parent2",
key: "parent2",
children: [
{
title: "child1",
key: "child1",
value: "1"
}
]
}
]

最佳答案

您可以采用迭代和递归方法。

function getNodes(object) {
return Object
.entries(object)
.map(([key, value]) => value && typeof value === 'object'
? { title: key, key, children: getNodes(value) }
: { title: key, key, value }
);
}

const data = { parent1: { child1: { bar: "1" }, child2: "2" }, parent2: { child1: "1" } },
result = getNodes(data);

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - JS中如何将json转为树形数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56601282/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com