console.log(convertData([
{
"addData": "item1.child1"
},
{
"addData": "item1.child2"
},
{
"addData": "item1.child3"
},
{
"addData": "item2"
},
{
"addData": "item3"
},
{
"addData": "item4.child1"
},
{
"addData": "item4.child2.key1"
},
{
"addData": "item4.child2.key2"
},
{
"addData": "item4.child3"
}
]))
function convertData (originalData) {
const result = [];
for (let item of originalData) {
const parts = item.addData.split('.');
let parent = result;
// 遍历该项数据的所有部分
for (let part of parts) {
// 在当前父级节点的子节点中查找该部分
let current = parent.find(node => node.value === part);
if (!current) {
// 如果该部分不存在,则创建新的节点,并将其添加到当前父级节点的子节点中
current = {
value: part,
label: part
};
parent.push(current);
}
// 更新父级节点引用为当前节点,继续处理下一个部分
parent = current.children || (current.children = []);
}
}
return result;
}