javascript當中的無限分類

來源:互聯網
上載者:User

標籤:ret   儲存   添加   for   lse   []   對象   沒有   return   

var data = [        {id:100000, name :"1", pid :0},        {id:100100, name :"1-1", pid :100000, },        {id:100101, name :"1-1-1", pid :100100, },        {id:200000, name :"2", pid :0, },         {id:210000, name :"2-1", pid :200000, },        {id:211000, name :"2-1-1", pid :210000, },        {id:211100, name :"2-1-1-1", pid :211000, },        {id:211110, name :"2-1-1-1-1", pid :211100, },        {id:211111, name :"2-1-1-1-1-1", pid :211110, }    ]    function toTree(data) {              // 刪除 所有 children,以防止多次調用        data.forEach(function (item) {            delete item.children;        });        console.log(data)        // 將資料存放區為 以 id 為 KEY 的 map 索引資料列        var map = {};        data.forEach(function (item) {            map[item.id] = item;        });        console.log(map);        var val = [];        data.forEach(function (item) {            // 以當前遍曆項,的pid,去map對象中找到索引的id            var parent = map[item.pid];            console.log(parent);            debugger            // 好繞啊,如果找到索引,那麼說明此項不在頂級當中,那麼需要把此項添加到,他對應的父級中            if (parent) {                (parent.children || ( parent.children = [] )).push(item);                console.log(data,val);            } else {                //如果沒有在map中找到對應的索引ID,那麼直接把 當前的item添加到 val結果集中,作為頂級                val.push(item);            }        });        return val;    }    console.log(toTree(data))

  

javascript當中的無限分類

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.