递归

var arr = [
{"id":1,"parent_id":0,"name":"Foods"},
{"id":2,"parent_id":1,"name":"Fruits"},
{"id":3,"parent_id":2,"name":"apple"},
{"id":4,"parent_id":2,"name":"orange"},
{"id":5,"parent_id":2,"name":"tomato"},
{"id":6,"parent_id":1,"name":"Vegetables"},
{"id":7,"parent_id":6,"name":"carrot"},
{"id":8,"parent_id":6,"name":"cabbage"},
{"id":9,"parent_id":6,"name":"potato"},
{"id":10,"parent_id":6,"name":"lettuce"},
{"id":11,"parent_id":0,"name":"Cars"}
]; function convert(arr, id){
var res = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i].parent_id == id) {
res.push(arr[i]);
// var func = eval(arguments.callee.name);
// arr[i].child = func(arr, arr[i].id);
arr[i].child = convert(arr,arr[i].id);
}
}
return res;
} console.log(convert(arr, 0));

https://www.jianshu.com/p/e8f3d71bd9c6

Javascript 数组转无限级分类的更多相关文章

  1. PHP无限级分类的实现(不使用递归)

    无限级分类在开发中经常使用,例如:部门结构.文章分类.无限级分类的难点在于“输出”和“查询”,例如 将文章分类输出为<ul>列表形式: 查找分类A下面所有分类包含的文章. 1.实现原理 在 ...

  2. MVC无限级分类02,增删改查

    继上一篇"MVC无限级分类01,分层架构,引入缓存,完成领域模型与视图模型的映射",本篇开始MVC无限级分类的增删改查部分,源码在github. 显示和查询 使用datagrid显 ...

  3. php无限级分类实战——评论及回复功能

    经常在各大论坛或新闻板块详情页面下边看到评论功能,当然不单单是直接发表评论内容那么简单,可以对别人的评论进行回复,别人又可以对你的回复再次评论或回复,如此反复,理论上可以说是没有休止,从技术角度分析很 ...

  4. JavaScript学习笔记——对象分类

    对象的分类 一.对象的分类 1.内置对象 Global Math 2.本地对象 Array Number String Boolean Function RegExp 3.宿主对象 DOM BOM 二 ...

  5. (实用篇)PHP递归实现无限级分类

    在一些复杂的系统中,要求对信息栏目进行无限级的分类,以增强系统的灵活性.那么PHP是如何实现无限级分类的呢?我们在本文中使用递归算法并结合mysql数据表实现无限级分类. 在一些复杂的系统中,要求对信 ...

  6. PHP无限级分类-递归(不推荐)

    [http://www.helloweba.com/view-blog-204.html] 在一些复杂的系统中,要求对信息栏目进行无限级的分类,以增强系统的灵活性.那么PHP是如何实现无限级分类的呢? ...

  7. php非递归无限级分类.

    项目需要.递归无限级分类效率实在太低.理了半天思路写的. 分类越多效率越高. /** * 单次循环返回无限极分类嵌套 * @param array $data 操作的数组 * @param strin ...

  8. thinkphp实现无限级分类

    普通的方法(采用for和foreach) //显示 foreach($data as $k=>$v){ //str_repeat()函数用于把字符串重复指定的次数 $data[$k]['titl ...

  9. PHP迭代与递归实现无限级分类

    无限级分类是开发中常见的情况,因此本文对常见的无限极分类算法进行总结归纳. 1.循环迭代实现 $arr = [ 1=>['id'=>1,'name'=>'父1','father'=& ...

随机推荐

  1. 011_9*9 乘法表(编写 shell 脚本,打印 9*9 乘法表)

    #!/bin/bashfor i in `seq 9`do    for j in `seq $i`        do           echo -n "$i*$j=$[i*j] &q ...

  2. learning armbian steps(4) ----- armbian 技术内幕

    在学习新的框架之前,肯定有一个原型机,通过最普通的指令来实现其功能. 做到这一点之后,所有的东西都不在是秘密,缺的时间进行系统深入的学习. 其实可以自已先来手动构建一个原生的arm 文件系统,基于qe ...

  3. leetcode解题报告(7):Valid Parentheses

    描述 Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the i ...

  4. [Luogu] 矩阵加速(数列)

    题面:https://www.luogu.org/problemnew/show/P1939 题解:https://www.zybuluo.com/wsndy-xx/note/1153810

  5. bzoj2688 Green Hackenbush

    (没有嘟嘟嘟) 权限题,请各位自己想办法交.不过代码正确性是可以保证的,至于为啥那不能说. 刚学完卡特兰数,就给我这种神题,我除了知道\(n\)个点的不同形态二叉树的数目是卡特兰数外,别的就不会了. ...

  6. ECMAScript 提案阶段

    stage0 strawman任何讨论.想法.改变或者还没加到提案的特性都在这个阶段.只有TC39成员可以提交. stage1 proposal (1)产出一个正式的提案. (2)发现潜在的问题,例如 ...

  7. MySQL数据分析-(2)数据库的底层逻辑

    (一) 数据库存在的逻辑 1.案例开篇-大部分公司对于数据和数字的管理都是低效率的 我们要学习数据库,就必须要搞清楚数据库是在什么样的情景下发明并流行的?学习新知识就要搞清楚每个知识点的来龙去脉,这样 ...

  8. slax中改变终端字体

    修改~/.Xresources文件 ! English font      Xterm*faceName: DejaVu Sans Mono=True:size=16 修改颜色: ! colos XT ...

  9. spring+mybatis事务的readonly属性无效

    在Spring配置事务中设置的read-only="true"不起作用,仍可以执行写操作:但是其他的正常.查看了一下DataSourceTransactionManager这个类的 ...

  10. JMeter压力测试及并发量计算-1

    一.JMeter的安装(Linux) 1. 下载JMeter:这个就不细说了,直接去(http://jmeter.apache.org/download_jmeter.cgi)下载. 2. 解压:ta ...