欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS一維數(shù)組轉(zhuǎn)多維數(shù)組樹的方法

 更新時間:2024年06月21日 08:29:07   作者:阿虎兒  
這篇文章主要介紹了JS一維數(shù)組轉(zhuǎn)多維數(shù)組樹的方法,文章通過代碼示例給大家講解的非常詳細(xì),?對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下

一維數(shù)組轉(zhuǎn)樹結(jié)構(gòu)數(shù)組方法

1. 方法

/**
 * 將一維數(shù)組轉(zhuǎn)換為樹結(jié)構(gòu)
 * @param {Array} data - 輸入的一維數(shù)組
 * @return {Array} 樹結(jié)構(gòu)數(shù)組
 */
function arrayToTree(data) {
    // 創(chuàng)建一個id映射,用來快速查找元素
    const idMap = {};
    // 遍歷數(shù)組,初始化每個元素的children字段,并將其存入idMap
    data.forEach(item => {
        idMap[item.id] = { ...item, children: [] };
    });

    // 初始化一個數(shù)組,用來存儲根節(jié)點(diǎn)
    const tree = [];

    // 再次遍歷數(shù)組,根據(jù)parentId建立樹結(jié)構(gòu)
    data.forEach(item => {
        const { id, parentId } = item;
        if (parentId == '' || parentId == null || parentId == undefined) {
            // 如果parentId為null或undefined,表示是根節(jié)點(diǎn)
            tree.push(idMap[id]);
        } else {
            // 否則,將當(dāng)前元素添加到其父元素的children字段中
            if (idMap[parentId]) {
                idMap[parentId].children.push(idMap[id]);
            }
        }
    });

    return tree;
}

使用注意

  • 根元素parentId的判定條件
  • 元素的唯一字段是id和父級字段是parentId

2.數(shù)組結(jié)構(gòu)data

let data = [
    { id: '1', parentId: '' },
    { id: '1_1', parentId: '1' },
    { id: '2', parentId: '' }
];

3.調(diào)用

let tree = arrayToTree(data);

打印結(jié)果

[
    {
        "id": "1",
        "parentId": "",
        "children": [
            {
                "id": "1_1",
                "parentId": "1",
                "children": []
            }
        ]
    },
    {
        "id": "2",
        "parentId": "",
        "children": []
    }
]

到此這篇關(guān)于JS一維數(shù)組轉(zhuǎn)多維數(shù)組樹的方法的文章就介紹到這了,更多相關(guān)JS一維轉(zhuǎn)多維數(shù)組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論