对testData进行处理后变成resultData格式
如果当前节点的child的第一个子节点的id有值,给当前节点增加一个cid的键并且值为id
cid的值为最里面的child的子节点id值
var testData=[{ ???"id": "1", ???"child": [{ ???????"id": "1-1", ???????"child": [] ???}]},{ ???"id": "2", ???"child": [{ ???????"id": "2-1", ???????"child": [{ ???????????"id": "2-1-1", ???????????"child": [] ???????}] ???},{ ???????"id": "2-2", ???????"child": [{ ???????????"id": "2-2-2", ???????????"child": [] ???????}] ???}]},{ ???"id": "3", ???"child": []}];var resultData=[{ ???"id": "1", ???"child": [{ ???????"id": "1-1", ???????"child": [] ???}], ???"cid": "1-1"},{ ???"id": "2", ???"child": [{ ???????"id": "2-1", ???????"child": [{ ???????????"id": "2-1-1", ???????????"child": [] ???????}], ???????"cid": "2-1-1" ???},{ ???????"id": "2-2", ???????"child": [{ ???????????"id": "2-2-1", ???????????"child": [] ???????}], ???????"cid": "2-2-1" ???}], ???"cid": "2-1-1"},{ ???"id": "3", ???"child": []}];
function addCid(json) { ???json.forEach(function(item){ ???????if(item.child[0]&&item.child[0].id){ ???????????item.cid=item.child[0].id; ???????????addCid(item.child); ???????????if(item.child[0].cid){ ???????????????item.cid=item.child[0].cid; ???????????} ???????} ???})}addCid(testData);console.log(testData);
json递归
原文地址:http://www.cnblogs.com/wanghuohuo/p/7429325.html