第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

將字符串樹(shù)轉(zhuǎn)換為數(shù)組

將字符串樹(shù)轉(zhuǎn)換為數(shù)組

素胚勾勒不出你 2021-06-14 13:01:26
我有一個(gè) id 作為字符串的對(duì)象。每個(gè)對(duì)象都可以是另一個(gè)對(duì)象的子對(duì)象??梢詮?ID 猜測(cè)關(guān)系。舉個(gè)例子:[  { id: '1:2:6', ids: ['1', '2', '6'] },  { id: '1:4', ids: ['1', '4'] },  { id: '1', ids: ['1'] },  { id: '1:2', ids: ['1', '2'] },]在這個(gè)例子中,根對(duì)象是id: 1,它有 2 個(gè)孩子id: 1:2和id: 1:4。終于,id: 1:2有了孩子id: 1:2:6。我想將此數(shù)組轉(zhuǎn)換為另一個(gè)數(shù)組,其中兒童嵌入到父母中,因此前一個(gè)數(shù)組將導(dǎo)致:[  {    id: '1',    children: [      {        id: '1:2',        children: [          { id: '1:2:6', children: [] }        ],      },      {        id: '1:4',        children: [],      }    ],  }]我可以使用 ES6。我嘗試了幾個(gè)小時(shí)來(lái)使用各種循環(huán)找到解決方案,但我無(wú)法弄清楚。任何幫助,將不勝感激!
查看完整描述

3 回答

?
江戶川亂折騰

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個(gè)贊

您可以ids通過(guò)在實(shí)際級(jí)別查找對(duì)象來(lái)迭代對(duì)象并減少對(duì)象。如果沒(méi)有找到創(chuàng)建一個(gè)新對(duì)象。然后讓孩子們回來(lái)。


var data = [{ id: '1:2:6', ids: ['1', '2', '6'] }, { id: '1:4', ids: ['1', '4'] }, { id: '1', ids: ['1'] }, { id: '1:2', ids: ['1', '2'] }],

    tree = data.reduce((r, { ids }) => {

        ids.reduce((t, _, i, a) => {

            var id = a.slice(0, i + 1).join(':'),

                temp = t.find(o => o.id === id);

            

            if (!temp) t.push(temp = { id, children: [] });

            return temp.children;

        }, r);

        return r;

    }, []);


console.log(tree);

.as-console-wrapper { max-height: 100% !important; top: 0; }


查看完整回答
反對(duì) 回復(fù) 2021-06-18
?
侃侃爾雅

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊

使用遞歸算法構(gòu)建樹(shù)


var jsonTree = [{ id: '1:2:6', ids: ['1', '2', '6'] },{ id: '1:4', ids: ['1', '4'] },{ id: '1', ids: ['1'] },{ id: '1:2', ids: ['1', '2'] },]


var newJsonTree = [];

var currentElement = {id: '1',childs: []}

newJsonTree.push(currentElement)


function buildTree(jsonTree, currentElement){

    for(var i=0;i<jsonTree.length;i++){

        var parent = jsonTree[i];

        for(var j=0;j<jsonTree.length;j++){

            var child = jsonTree[j];

            if(child['visited'] != true && child['id'] != currentElement['id'] && child['id'].indexOf(currentElement['id']) == 0 ){

                if(child['id'].split(":").length == currentElement['id'].split(":").length+1){

                    var newElement = {}

                    newElement['id'] = child['id'];

                    newElement['childs'] = [];

                    currentElement['childs'].push(newElement);

                    child['visited'] = true;

                    buildTree(jsonTree, newElement);

                }

            }

        }

    }

}


buildTree(jsonTree, currentElement);

document.write(JSON.stringify(newJsonTree));

結(jié)果:


[{"id":"1","childs":[{"id":"1:4","childs":[]},{"id":"1:2","childs":[ {"id":"1:2:6","childs":[]}]}]}]




查看完整回答
反對(duì) 回復(fù) 2021-06-18
  • 3 回答
  • 0 關(guān)注
  • 180 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)