问题描述
您好,有一个json数据,如下所示。
var arr = [{
"ID": 1,"parentID": 0,"Phone": "(403) 125-2552","City": "Coevorden","Name": "Grady"
},{
"ID": 2,"Phone": "(979) 486-1932","City": "Chełm","Name": "Scarlet"
},{
"ID": 3,"Phone": "(573) 685-8350","City": "Wardha","Name": "Adria"
},{
"ID": 4,"parentID": 3,"Phone": "(630) 292-9737","City": "Villers-la-Loue","Name": "Xerxes"
},{
"ID": 5,"Phone": "(755) 968-6539","City": "Gönen","Name": "Madeson"
},{
"ID": 6,"parentID": 5,"Phone": "(644) 892-5485","City": "Timkur","Name": "Rae"
},{
"ID": 7,"Phone": "(896) 297-6568","City": "Louvain-la-Neuve","Name": "Celeste"
},{
"ID": 8,"Phone": "(168) 452-3538","City": "Worksop","Name": "Rowan"
},{
"ID": 9,"Phone": "(873) 337-9560","City": "Bad Neuenahr-Ahrweiler","Name": "Kendall"
},{
"ID": 10,"Phone": "(450) 579-0491","City": "MIDdelburg","Name": "Madaline"
},{
"ID": 11,"Phone": "(111) 162-2502","City": "Birecik","Name": "Chandler"
},{
"ID": 12,"parentID": 8,"Phone": "(712) 483-3905","City": "Courbevoie","Name": "Craig"
},{
"ID": 13,"Phone": "(872) 499-5833","City": "Cuccaro Vetere","Name": "Basia"
},{
"ID": 14,"parentID": 6,"Phone": "(724) 797-0077","City": "Portree","Name": "Elmo"
},{
"ID": 15,"Phone": "(366) 967-0433","City": "Dublin","Name": "Cairo"
},{
"ID": 16,"parentID": 11,"Phone": "(147) 708-7321","City": "Rivière-du-Loup","Name": "Mannix"
},{
"ID": 17,"Phone": "(407) 519-9894","City": "Roubaix","Name": "Justine"
}]
.
.
.
我想对这些数据进行树状显示,结果如下图所示。没问题,它正常工作。
[
{
"ID": 1,"Name": "Grady"
},{
"ID": 2,"Name": "Scarlet","children": [
{
"ID": 30,"parentID": 2,"Phone": "(641) 756-7073","City": "Harrison Hot Springs","Name": "Hamilton","children": [
{
"ID": 54,"parentID": 30,"Phone": "(800) 876-5942","City": "Ribnitz-Damgarten","Name": "Kelsie","children": [
{
"ID": 62,"parentID": 54,"Phone": "(523) 159-2911","City": "Biała Podlaska","Name": "Clio"
}
]
},{
"ID": 87,"Phone": "(500) 895-9220","City": "Piracicaba","Name": "Maya"
}
]
},{
"ID": 40,"Phone": "(921) 336-7339","City": "Namur","Name": "Lionel"
},{
"ID": 43,"Phone": "(410) 695-8540","City": "Saint-Laurent","Name": "Deanna","children": [
{
"ID": 63,"parentID": 43,"Phone": "(475) 190-5102","City": "Nicoya","Name": "Nola"
},{
"ID": 98,"Phone": "(268) 572-5059","City": "San Marcello Pistoiese","Name": "Marny"
}
]
}
]
},{
"ID": 3,"Name": "Adria","children": [
{
"ID": 4,"Name": "Xerxes","children": [
{
"ID": 44,"parentID": 4,"Phone": "(287) 866-8953","City": "Fiuminata","Name": "Darius","children": [
{
"ID": 47,"parentID": 44,"Phone": "(779) 411-0381","City": "Pontedera","Name": "Harding","children": [
{
"ID": 92,"parentID": 47,"Phone": "(925) 263-0254","City": "Curacaví","Name": "Aristotle"
}
]
}
]
},{
"ID": 56,"Phone": "(963) 719-2718","City": "Gore","Name": "Rafael"
}
]
},{
"ID": 58,"Phone": "(464) 318-7548","City": "Curepto","Name": "Leila"
}
]
.
.
.
我的主要问题是parentID:我不想将parentID写入写入0的对象。但是,当我删除显示parentID:0的位置时,它将无法正常工作。你能帮忙吗?
我运行的代码是:
tree = function(array) {
var o = {
ID: 0
}
function arrGet(o) {
if (Array.isArray(o.children)) {
o.children.forEach(arrGet);
}
}
array.forEach(function(a) {
o[a.ID] = o[a.ID] || {
ID: a.ID,parentID: a.parentID,Phone: a.Phone,City: a.City,Name: a.Name
};
a.children = o[a.ID].children;
o[a.parentID] = o[a.parentID] || {
ID: a.parentID
};
o[a.parentID].children = o[a.parentID].children || [];
o[a.parentID].children.push(o[a.ID]);
});
arrGet(o[0]);
return o[0].children;
}(arr);
document.writeln('<pre>' + JSON.stringify(tree,4) + '</pre>');
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)