如何用 js 递归输出树型
2015-09-06 22:19
701 查看
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> </head> <body> <script> var data = [ { id: 1, title: 'a', pid: 0 }, { id: 2, title: 'a1', pid: 1 }, { id: 3, title: 'a11', pid: 2 }, { id: 4, title: 'a12', pid: 2 }, { id: 5, title: 'a2', pid: 1 }, { id: 6, title: 'a21', pid: 5 } ]; function fn(data, pid) { var result = [], temp; for (var i in data) { if (data[i].pid == pid) { result.push(data[i]); temp = fn(data, data[i].id); if (temp.length > 0) { data[i].children = temp; } } } return result; } //console.log(fn(data, 0)); Array.prototype.ToTreeJson = function (pid) { var result = [], temp; for (var i in this) { if (this[i].pid == pid) { result.push(this[i]); temp = fn(this, this[i].id); if (temp.length > 0) { this[i].children = temp; } } } return result; } var p = data.ToTreeJson(0); </script> </body> </html>
相关文章推荐
- js中使用||赋值
- functional javascript
- 实现随即颜色(js)
- jsp使用自定义类
- JavaScript学习笔记7-Ajax(编写模板)
- JSP学习笔记
- BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
- golang-otto JS解释器
- js计算器
- js高级 笔记
- js笔记
- javascript 位运算
- js 计算器
- JavaScript面试题
- iOS js oc相互调用(JavaScriptCore)(二)
- 原生JS实现瀑布流
- Js完美验证15/18身份证
- JS获取当前对象大小以及屏幕分辨率等
- 浅谈JavaScript中的this
- js加日期版本,防止引用缓存