分类目录

链接

友情链接

统计信息

  • 日志总数:114篇
  • 评论总数:185条
  • 分类总数:11个
  • 标签总数:391个
  • 友情链接:0个
  • 网站运行:3177天

2019年八月
« 3月    
 1234
567891011
12131415161718
19202122232425
262728293031  
>
现在位置:    首页 > javascript > 正文

javascript 无限级树结构算法

javascript 暂无评论
        var arr = [];
	arr.push([0,0,1,"计算机"]);  // 结构 0=>id,1=>parent,2=>categoryID,3=>categoryName
	arr.push([0,1,2,"PHP编程"]);
	arr.push([0,1,3,"javascript"]);
	arr.push([0,1,4,"C语言"]);
	arr.push([0,2,5,"PHP数组"]);
	arr.push([0,2,6,"PHP对象"]);
	arr.push([0,0,7,"历史"]);
	arr.push([0,7,8,"世界历史"]);
	arr.push([0,7,9,"中国历史"]);
	arr.push([0,8,10,"世界历史之历史"]);
	arr.push([0,10,11,"世界历史之历史2"]);
	
	
	
	//遍历 
	function tree(arr){
		if((arr instanceof Array) == false){
			return ;
		}
	    this._temp || (this._temp = arr.concat());


		//第一层顶级父类
		for(var i=0;i<this._temp.length;i++){

			for(var j=0;j<arr.length;j++){
				if(this._temp[i][2] == arr[j][1]){
					//如果最后一个不是数组,则添加
					var lastIndex = this._temp[i].length-1
					if((this._temp[i][lastIndex] instanceof Array) == false){
						this._temp[i].push([]);
					}
					this._temp[i][this._temp[i].length-1].push(arr[j]);
				}

			}
			
		}

		//删除不是顶级父节点【即为父分类为0】的 元素
		for(var i=this._temp.length-1;i>=0;i--){

			if(this._temp[i][1] != 0){

				this._temp.splice(i,1);
			}
		}


		return  this._temp;
	}

   window.onload = function(){

   			var array  = tree(arr);
   			var div = document.createElement("div");
   			div.innerHTML = JSON.stringify(array);
	        document.body.appendChild(div);
   }

输出结果如下:

[
    [
        0, 
        0, 
        1, 
        "计算机", 
        [
            [
                0, 
                1, 
                2, 
                "PHP编程", 
                [
                    [
                        0, 
                        2, 
                        5, 
                        "PHP数组"
                    ], 
                    [
                        0, 
                        2, 
                        6, 
                        "PHP对象"
                    ]
                ]
            ], 
            [
                0, 
                1, 
                3, 
                "javascript"
            ], 
            [
                0, 
                1, 
                4, 
                "C语言"
            ]
        ]
    ], 
    [
        0, 
        0, 
        7, 
        "历史", 
        [
            [
                0, 
                7, 
                8, 
                "世界历史", 
                [
                    [
                        0, 
                        8, 
                        10, 
                        "世界历史之历史", 
                        [
                            [
                                0, 
                                10, 
                                11, 
                                "世界历史之历史2"
                            ]
                        ]
                    ]
                ]
            ], 
            [
                0, 
                7, 
                9, 
                "中国历史"
            ]
        ]
    ]]

这就是JAVAscrtip版本的  树状结构。这对于我们日常使用的 的分类很有帮助,它可以使你的分类 生成一个树状结构,能浅析地看到它们之间的结构。所以 算法是非常之有用的。

这就是我今天写的 JS 版树状结构算法,如果有什么错误,可以告诉我。

本文版权归企业网站建设,做网站,网站建设,php网站建设,dedecms建站,ecshop二次开发,html空间,网站修改所有,转载引用请完整注明以下信息:
本文作者:admin
本文地址:javascript 无限级树结构算法 | 企业网站建设,做网站,网站建设,php网站建设,dedecms建站,ecshop二次开发,html空间,网站修改

抱歉!评论已关闭.