javascript 生成 treenodes

function traverse(obj) {
    if (obj instanceof Array) {
        for (var i=0; i<obj.length; i++) {
            if (typeof obj[i] == "object" && obj[i]) {
                console.log(i);
                traverse(obj[i]);
            } else {
                callback(i, obj[i]);
            }
        }
    } else {
        for (var prop in obj) {
            if (typeof obj[prop] == "object" && obj[prop]) {
                traverse(obj[prop]);
            } else {
                //callback(prop, obj[prop]);
              callback(obj);
            }
        }
    }
}

var callback = function(){
   var a1 = arguments[0];
   console.log(a1);   
};


var arr= [
  {"name": "user1","parent": "null"},
 {"name": "user2","parent": "user1"},
 {"name": "user3","parent": "user1"},
 {"name": "user4","parent": "user2"},
 {"name": "user5","parent": "user4"}
];

traverse(arr);
/*
//这是我要的结果 
var arr = [
    {"parent":null, "name":"user1"},
    {"parent":"user1","expanded": true, items:[
        {"name": "user2","parent": "user1"},
        {"name": "user3","parent": "user1"},
    ]},
    {"parent":"user2","expanded": true, items:[
         {"name": "user4","expanded": true, "parent": "user2",items:[
             {"name": "user5","parent": "user4"}
         ]},
    ]}
];
*/

http://jsbin.com/qumofowave/1/edit?html,js,output

阅读 2.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题