javascript - js数据处理转换??
本文介绍了javascript - js数据处理转换??的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
var data1=[{
"tid": "1",
"text": "产品分析",
"children": [{
"tid": "1-1",
"text": "模拟产品计划",
"children": [{
"tid": "1-1-1",
"text": "用户行为分析1"
}, {
"tid": "1-1-2",
"text": "用户行为分析2"
}]
}]
var data2 = [
{"tid": "1", "text": "产品分析"},
{"tid": "1-1", "pid": "1", "text": "模拟产品计划"},
{"tid": "1-1-1", "pid": "1-1", "text": "用户行为分析1"},
{"tid": "1-1-2", "pid": "1-1", "text": "用户行为分析2"}
];
请问大神,这两种数据格式怎么互相转换?注意pid的增添!!!
解决方案
var data=[{
"tid": "1",
"text": "产品分析",
"children": [{
"tid": "1-1",
"text": "模拟产品计划",
"children": [{
"tid": "1-1-1",
"text": "用户行为分析1"
}, {
"tid": "1-1-2",
"text": "用户行为分析2"
}]
}]
}];
var res = [];
function transform(arr,pid){
arr.map(function(item){
res.push({
tid : item.tid,
pid : pid,
text : item.text
});
item.children && item.children.length && transform(item.children , item.tid);
});
}
transform(data);
console.log(res);
function buildTree(tree,node){
if(!node.pid){
delete node.pid;
tree.push(node);
}
else{
tree.map(function(item){
if(item.tid == node.pid){
delete node.pid;
item.children = item.children || [];
item.children.push(node);
}else{
buildTree(item.children,node);
}
});
}
}
var data = [];
for(item of res){
buildTree(data,item);
}
console.log(data)
这篇关于javascript - js数据处理转换??的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文