<script>
let obj = {
rootid: "f8160853-8412-454c-98f1-16d2fdbc84ad",
nodes: {
"f8160853-8412-454c-98f1-16d2fdbc84ad": {
id: "f8160853-8412-454c-98f1-16d2fdbc84ad",
name: "ooda",
children: ["c005d8aa-1a0d-4690-b3c0-87a933ebfaab"],
},
"4bc23b6f-17d1-47e3-8867-882b8cfdac59": {
id: "4bc23b6f-17d1-47e3-8867-882b8cfdac59",
name: "更新实体信息",
},
"c005d8aa-1a0d-4690-b3c0-87a933ebfaab": {
id: "c005d8aa-1a0d-4690-b3c0-87a933ebfaab",
name: "序列节点",
children: ["3f16bbfe-23a6-47cf-b386-11f9dbb71379"],
},
"3f16bbfe-23a6-47cf-b386-11f9dbb71379": {
id: "3f16bbfe-23a6-47cf-b386-11f9dbb71379",
name: "获取实体信息",
children: ["4bc23b6f-17d1-47e3-8867-882b8cfdac59"],
},
},
}
console.log(11, Object.values(obj.nodes)) //拿到键值
let arr = Object.values(obj.nodes)
// 过滤出没有childern的元素
let arr1 = arr.filter((v) => {
if (v.children) {
return v
}
})
console.log(arr1)
// for循环把下一个元素插入到上一个元素的children里
for (let i = 0; i <= arr1.length - 1; i++) {
arr1[i].children = []
arr1[i].children.push(arr1[i + 1])
// 判断是否是最后一个元素,把没有上面没有children的元素插入到当前arr1最后一个元素的children里
if (i === arr1.length - 1) {
arr1[i].children = []
arr1[i].children.push(arr[1])
}
}
// 截取第一个我们需要的元素,并展开
console.log(...arr1.slice(0, 1))
</script>
如有更好的方法,欢迎留言评论。