87,993
社区成员
发帖
与我相关
我的任务
分享var str = "北京市,海淀区,温泉镇;湖南省,长沙市,岳麓区,郁林街;广东省,广州市,雨花区;北京市,海淀区,白家疃;南京,海淀区,白家疃;"
var arr = str.split(';');
if(arr[arr.length - 1] == ''){
arr.pop();
}
var tempMap = {};
function createChild(name,parent){
var path = '';
if(parent){
path = getBranchPath(parent);
path = path ? path + '.' + name : name;
if(tempMap[path]){
return tempMap[path];
}
}
var obj = {};
obj.text = name;
obj.children = [];
if(parent){
obj.parent = parent;
parent.children.push(obj);
}
path = getBranchPath(obj);
tempMap[path] = obj;
return obj;
}
function getBranchPath(obj){
var path = [];
path.push(obj.text);
var parent = obj.parent;
while(parent && parent.text){
path.push(parent.text);
parent = parent.parent;
}
return path.reverse().join('.');
}
var treeObj = createChild('');
for(var i=0;i<arr.length;i++){
var _arr = arr[i].split(',');
var self,parent = treeObj;
while(_arr.length){
var name = _arr.shift();
self = createChild(name,parent);
parent = self;
}
}
for(var p in tempMap){
delete tempMap[p].parent;
}
console.log(treeObj)[/quote]
感谢var str = "北京市,海淀区,温泉镇;湖南省,长沙市,岳麓区,郁林街;广东省,广州市,雨花区;北京市,海淀区,白家疃;南京,海淀区,白家疃;"
var arr = str.split(';');
if(arr[arr.length - 1] == ''){
arr.pop();
}
var tempMap = {};
function createChild(name,parent){
var path = '';
if(parent){
path = getBranchPath(parent);
path = path ? path + '.' + name : name;
if(tempMap[path]){
return tempMap[path];
}
}
var obj = {};
obj.text = name;
obj.children = [];
if(parent){
obj.parent = parent;
parent.children.push(obj);
}
path = getBranchPath(obj);
tempMap[path] = obj;
return obj;
}
function getBranchPath(obj){
var path = [];
path.push(obj.text);
var parent = obj.parent;
while(parent && parent.text){
path.push(parent.text);
parent = parent.parent;
}
return path.reverse().join('.');
}
var treeObj = createChild('');
for(var i=0;i<arr.length;i++){
var _arr = arr[i].split(',');
var self,parent = treeObj;
while(_arr.length){
var name = _arr.shift();
self = createChild(name,parent);
parent = self;
}
}
for(var p in tempMap){
delete tempMap[p].parent;
}
console.log(treeObj)var str = "北京市,海淀区,温泉镇;湖南省,长沙市,岳麓区,郁林街;广东省,广州市,雨花区;北京市,海淀区,白家疃;"
var arr = str.split(';');
if(arr[arr.length - 1] == ''){
arr.pop();
}
var tempMap = {};
function createChild(name,parent){
if(tempMap[name]){
return tempMap[name];
}
var obj = {};
obj.text = name;
obj.children = [];
if(parent){
parent.children.push(obj);
}
tempMap[name] = obj;
return obj;
}
var treeObj = createChild('');
for(var i=0;i<arr.length;i++){
var _arr = arr[i].split(',');
var self,parent = treeObj;
while(_arr.length){
var name = _arr.shift();
self = createChild(name,parent);
parent = self;
}
}
console.log(treeObj)var str = "北京市,海淀区,温泉镇;湖南省,长沙市,岳麓区,郁林街;广东省,广州市,雨花区;"
var arr = str.split(';');
function createChild(name,parent){
var obj = {};
obj.text = name;
obj.children = [];
if(parent){
parent.children.push(obj);
}
return obj;
}
var treeObj = createChild('');
for(var i=0;i<arr.length;i++){
var _arr = arr[i].split(',');
var self,parent = treeObj;
while(_arr.length){
var name = _arr.shift();
self = createChild(name,parent)
parent = self;
}
}
console.log(treeObj)