1.有扁平数据结构转为层级数据结构(里面还有些地方不是很明白,希望以后回过头来能在琢磨一下)
var tableData = [{"province":"浙江","city":"杭州","name":"西湖"},{"province":"四川","city":"成都","name":"锦鲤"},{"province":"四川","city":"成都","name":"方所"},{"province":"四川","city":"阿坝","name":"九寨沟"}];
var keys = ["province","city","name"];
var transObject = function(tableData, keys){
var hashTable = {}, res = [];
debugger;
for(var i = 0; i < tableData.length; i++){
var arr = res, cur = hashTable;
for(var j = 0; j < keys.length; j++){
var key = keys[j], field = tableData[i][key];
if(!cur[field]){
var pusher = {
value: field
},tmp;
if( j !== (keys.length - 1)){
tmp = [];
pusher.children = tmp;
}
cur[field] = { pos: arr.push(pusher) - 1 };
cur = cur[field];
arr = tmp;
}else{
cur = cur[field];
arr = arr[cur.pos].children;
}
}
}
return res;
};
var res = transObject(tableData,keys);
console.log(res);