我有第1步中顯示的數據,並且我想按照第2步中的步驟#2基於「ID」:有孩子的數組 - 以父親 - 孩子等級的形式顯示
step#1:
[
{"id": "card:1.usa", "name": "usa"}, {"id": "card:2", "name": "card2"}, {"id": "card:1", "name": "card1"}, {"id": "card:2.washington", "name": "washington"},
{"id": "card:1.usa.illinios", "name": "illinios"}, {"id": "card:1.usa.illinios.city1", "name": "chicago"}
]
step#2 :
[
{"id": "card:1", "name": "card1", "children": [ {"id": "card:1.usa", "name": "usa", "children":[ {"id": "card:1.usa.illinios", "name": "illinios", "children":[ {"id": "card:1.usa.illinios.city1", "name": "chicago"}] }] } },
{"id": "card:2", "name": "card2", "children": [ {"id": "card:2.washington", "name": "washington" }] }
]
我試圖做的從我身邊下面,但這僅僅得到第一級子:
var cardData = [
{"id": "card:1.usa", "name": "usa"}, {"id": "card:2", "name": "card2"}, {"id": "card:1", "name": "card1"}, {"id": "card:2.washington", "name": "washington"},
{"id": "card:1.usa.illinios", "name": "illinios"}, {"id": "card:1.usa.illinios.city1", "name": "chicago"}
]
var subCardList = [];
$scope.parentCard = [];
for(var i=0; i<cardData.length; i++){
if(cardData[i].id.indexOf('.') > -1){
subCardList.push(cardData[i]);
}
}
for(var i=0; i<cardData.length; i++){
for(var j=0; j<subCardList.length; j++){
var cardObj = {};
if(cardData[i].id == subCardList[j].id.substr(0, subCardList[j].id.indexOf('.'))){ //found matching parent card
cardObj.id = cardData[i].id;
cardObj.children = subCardList[j];
$scope.parentCard.push(cardObj);
}
}
}
請讓我知道我可以通過JavaScript/jQuery的實現這一目標?
您應該只適用於您的$範圍在您的視圖中需要什麼。 – gr3g
@ gr3g - 刪除了$ scope變量 – Mustang
@SAM添加了一個修改後的解決方案,處理邊緣案例 – santon