Javascript 实现将对象转为树状json格式


<script type="text/javascript">
	var nodes=[{
	id:10,
	title:'文章0',
	parentId:4
},
{
	id:4,
	title:"文章1",
	parentId:2
},
{
	id:2,
	title:"文章2",
	parentId:0,
},{
	id:8,
	title:"文章3",
	parentId:2
},{
	id:6,
	title:"文章4",
	parentId:4
}];
(function converToJson(){
	var temp={},res={};
	//将parentId相同的对象归类
	for(var i in nodes){
		if(!temp[nodes[i].parentId]){
			temp[nodes[i].parentId] = [];
		}
		temp[nodes[i].parentId].push(nodes[i]);
	}
	res=temp[0];
	var f =res;
	convertD(f,temp);
	console.log("---"+JSON.stringify(res[0]));
})();

//递归实现添加children节点
function convertD(f,temp){
	for(var m=0;m<f.length;m++){
		var t = f[m].id;
		for(var i in temp){
			if(t == i){
				f[m].children=temp[i];
				break;
			}
		}
		if(f[m].children){
			convertD(f[m].children,temp);
		}

	}

}

</script>

res[0]结果:

{
    "id": 2,
    "title": "文章2",
    "parentId": 0,
    "children": [{
        "id": 4,
        "title": "文章1",
        "parentId": 2,
        "children": [{
            "id": 10,
            "title": "文章0",
            "parentId": 4
        },
        {
            "id": 6,
            "title": "文章4",
            "parentId": 4
        }]
    },
    {
        "id": 8,
        "title": "文章3",
        "parentId": 2
    }]
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值