最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)文章

最新評論

益阳市| 昭平县| 东平县| 海阳市| 镇宁| 昆山市| 松江区| 鸡东县| 马公市| 广汉市| 平原县| 金坛市| 班玛县| 佳木斯市| 子洲县| 安庆市| 虎林市| 南通市| 梨树县| 成武县| 鸡东县| 夹江县| 磐安县| 广饶县| 政和县| 正阳县| 株洲县| 苍山县| 辽阳市| 霍州市| 台前县| 乌兰浩特市| 靖西县| 余干县| 辛集市| 琼海市| 武清区| 宝山区| 岳阳县| 麻栗坡县| 威海市|