我是軟件領域的新手。我有一個json陣列的對象像將一種形式的JSON數組轉換爲另一種形式?
var treeObj = [
{
"name": "sriram",
"refernce_id": "SAN001",
"sponer_id": "SAN000"
},
{
"name": "neeraja",
"refernce_id": "SAN002",
"sponer_id": "SAN001"
},
{
"name": "upender",
"refernce_id": "SAN003",
"sponer_id": "SAN001"
},
{
"name": "manoj",
"refernce_id": "SAN004",
"sponer_id": "SAN002"
},
{
"name": "shirisha",
"refernce_id": "SAN005",
"sponer_id": "SAN002"
},
{
"name": "ragu",
"refernce_id": "SAN006",
"sponer_id": "SAN003"
},
{
"name": "santhu",
"refernce_id": "SAN007",
"sponer_id": "SAN003"
}
];
在這裏,我將通過上述對象的函數。在那個函數中,我需要在每個對象中將引用ID與sponer_id進行比較,如果它們相等,我們需要將它們推入一個數組,我們將其稱爲子對象,就像下面一樣,我們需要再次檢查子數組中的引用ID in存在於上述對象的sponer_id中,如果它再次存在,我們需要將它們推送到子數組中,將其放入包含reference_id的對象中。最終的數組對象看起來像。
[
{
"name": "sriram",
"parent": null,
"children": [
{
"name": "neeraja",
"parent": "sriram",
"children": [
{
"name": "manoj",
"parent": "neeraja"
},
{
"name": "shirisha",
"parent": "neeraja"
}
]
},
{
"name": "upender",
"parent": "sriram",
"children": [
{
"name": "ragu",
"parent": "neeraja"
},
{
"name": "santhu",
"parent": "neeraja"
}
]
}
]
}
]
這裏sriram的treeObj參考ID在neeraja和upender對象中作爲sponder id存在。所以neeraja和upender成爲孩子對斯里蘭卡。 neeraja的reference_id在treeObj的manoj和shirisha對象中作爲sponer_id存在。同時孩子可以有更多的孩子對象,我們需要動態地格式化對象。
這是我寫的模樣
var mainArr = [], subArrs = [], subObj={}, subIds = [], find = "SAN001";
formatData(treeObj);
function formatData(treeObj){debugger;
var arr = [];
for(var x=0; x<= treeObj.length-1; x++){debugger;
var sampData = treeObj[x];
if(find == sampData.sponer_id){
arr.push(sampData.refernce_id);
subArrs.push(sampData);
}
}
subIds.push(arr);
console.log(subIds);
console.log(subArrs);
formatData(subArrs);
}
功能請指導我在哪裏出了錯。提前致謝。
'Java'不是'JavaScript' – Smit