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

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

JS面試題-計(jì)算題,寫個(gè)函數(shù),把數(shù)組變成對(duì)象結(jié)構(gòu)

JS面試題-計(jì)算題,寫個(gè)函數(shù),把數(shù)組變成對(duì)象結(jié)構(gòu)

慕工程0101907 2018-08-03 10:21:42
請(qǐng)問(wèn),下面 data數(shù)組,如何寫一個(gè)函數(shù),使 data數(shù)組變成 tree的格式結(jié)構(gòu)。var data = [{id:"2", value:"xxx"},{id:"3", value:"xxx"},{id:"4", value:"xxx"},{id:"6", value:"xxx"},{id:"5", value:"xxx"},{id:"1", value:"xxx"},]寫個(gè)函數(shù)變?yōu)関ar tree = {"1":{    "children":{        "2":{            "children":{                "4":{                    "children":{                        "6":{                                                }                    }                }            }        }    }},"3":{    "children":{        "5":{                    }    }}
查看完整描述

2 回答

?
米脂

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

大兄弟,你這tree完全沒(méi)有規(guī)律啊

查看完整回答
反對(duì) 回復(fù) 2018-08-05
?
慕沐林林

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

實(shí)現(xiàn)了,主要考了3點(diǎn):

  1. 邏輯

  2. 遞歸

  3. Object.keys()

代碼未優(yōu)化,先去吃飯了,本地測(cè)試完成

var data = [

    { id: "2", value: "xxx" },

    { id: "3", value: "xxx" },

    { id: "4", value: "xxx" },

    { id: "6", value: "xxx" },

    { id: "5", value: "xxx" },

    { id: "1", value: "xxx" },

];

var tree = {


    "1": {

        "children": {

            "2": {

                "children": {

                    "4": {

                        "children": {

                            "6": {


                            }

                        }

                    }

                }

            }

        }

    },

    "3": {

        "children": {

            "5": {


            }

        }

    }

};


function trans(data) {

    let dataSort = data.sort((a, b) => {

        return a.id - b.id < 0 ? -1 : 1;

    });


    let tree;


    for (let i = 0; i < dataSort.length; i++) {

        let idNum = dataSort[i].id;

        let isEven = Number(idNum) % 2 === 0;


        if (tree === undefined) {

            tree = {};

            tree[1] = {};

        } else if (isEven) {

            appendChildAttr(tree[1], idNum);

        } else {


            if (tree[3] === undefined) {

                tree[3] = {};

            }else {

                appendChildAttr(tree[3], idNum);    

            }            

            

        }


        function appendChildAttr(parNode, childrenId) {


            if (Object.keys(parNode).length === 0) {

                parNode.children = {};

                parNode.children[childrenId] = {};

            } else {

                appendChildAttr(parNode.children[Object.keys(parNode.children)[0]], childrenId);

            }


        }

    }

    return tree;

}


console.log(JSON.stringify(trans(data))===JSON.stringify(tree));


查看完整回答
反對(duì) 回復(fù) 2018-08-05
  • 2 回答
  • 0 關(guān)注
  • 990 瀏覽
慕課專欄
更多

添加回答

舉報(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)