javascript 無限分類

來源:互聯網
上載者:User

標籤:laravel   無限   thinkphp5   framework   name   for   com   get   targe   

* 根據php無限分類實現js版本的

 

/** * 根節點 parentid=0, 每個節點都有id, parentid欄位 * @param items * @returns {*} */function getTree(items) {    "use strict";    var children = new Map();    items.forEach(function(item){        if (children.has(item.parentid)) {            children.get(item.parentid).push(item);        } else {            children.set(item.parentid, [item]);        }    });    items.forEach(function(item) {        if (children.has(item.id)) {            item.children = children.get(item.id);        }    });    return children.get(0);}

  

* test

var items = [{    "id": 4,    "parentid": 2,    "name": "Laravel"}, {    "id": 1,    "parentid": 0,    "name": "PHP"}, {    "id": 43,    "parentid": 42,    "name": "PHPStorm"}, {    "id": 44,    "parentid": 42,    "name": "EclipsePDT"}, {    "id": 2,    "parentid": 1,    "name": "PHP_Framework"}, {    "id": 3,    "parentid": 2,    "name": "ThinkPHP5"}, {    "id": 42,    "parentid": 1,    "name": "DevTools"}];var c = getTree(items);// console.log(c);console.log(JSON.stringify(c));

  

output:

[{"id":1,"parentid":0,"name":"PHP","children":[{"id":2,"parentid":1,"name":"PHP_Framework","children":[{"id":4,"parentid":2,"name":"Laravel"},{"id":3,"parentid":2,"name":"ThinkPHP5"}]},{"id":42,"parentid":1,"name":"DevTools","children":[{"id":43,"parentid":42,"name":"PHPStorm"},{"id":44,"parentid":42,"name":"EclipsePDT"}]}]}]

* 線上json校正格式化輸出

http://www.bejson.com/

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.