sách gpt4 ai đã đi

javascript - 将平面数组解析为嵌套结构(树)

In lại 作者:行者123 更新时间:2023-11-30 15:13:39 30 4
mua khóa gpt4 Nike

例如,我想解析以下数组:

var array1 = ["a.b.c.d", "a.e.f.g", "a.h", "a.i.j", "a.b.k"]

进入:

var json1 = {
"node": "a",
"leaf": false,
"children": [{
"node": "b",
"leaf": false,
"children": [{
"node": "c",
"children": [{
"node": "d",
"leaf": true,
"children": []
}]
},
{
"node": "h",
"leaf": true,
"children": []
}
]
},
{
"node": "e",
"leaf": false,
"children": [{
"node": "f",
"leaf": true,
"children": []
}]
},
{
"node": "g",
"leaf": true,
"children": []
}
]
}

我认为 D3.JS 提供了一个很好的方法来做到这一点,但我找不到一些好的例子。

感谢您的帮助!

1 Câu trả lời

您可以使用嵌套哈希表方法来构建树结构。

var nodes = ["a.b.c.d", "a.e.f.g", "a.h", "a.i.j", "a.b.k"],
result = [];

nodes.forEach(function (a) {
a.split('.').reduce(function (r, k, i, kk) {
if (!r[k]) {
r[k] = { _: [] };
r._.push({ node: k, leaf: i + 1 === kk.length, children: r[k]._ });
}
return r[k];
}, this);
}, { _: result });

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

关于javascript - 将平面数组解析为嵌套结构(树),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44781536/

30 4 0
Bài viết được đề xuất: c# - 当前上下文中不存在名称 'ARSubsystemManager'
Bài viết được đề xuất: 无法增加共享内存的大小
Bài viết được đề xuất: c# - 如何序列化 List 同时转义特殊字符?
Bài viết được đề xuất: c - c中的回文数检查
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com