0
여기 Model Tree Structure with An Array Of Ancestors 자습서에 따라 범주 계층을 만들었습니다. 쿼리를 수행 할 때 다음 배열 덤프와 동일한 결과가 나타납니다. Javascript 트리 구조의 배열 배열
[
{id:1,name:'A', ancestors:[]}
,{id:2,name:'AA',parent:1, ancestors:[1]}
,{id:4,name:'AAA',parent:2, ancestors:[1,2]}
,{id:5,name:'AAB',parent:2, ancestors:[1,2]}
,{id:3,name:'AB',parent:1, ancestors:[1]}
,{id:6,name:'ABA',parent:3, ancestors:[1,3]}
,{id:7,name:'ABB',parent:3, ancestors:[1,3]}
,{id:8,name:'B', ancestors:[]}
]
나 동적 아래에 위의 배열을 변환 도와주세요 :
[
{id:1, name:'A', ancestors: [], children : [
//children of A
{id:2, name:'AA', parent:1, ancestors:[1], children:[
//children of AA
{id:4, name:'AAA', parent:2, ancestors:[1,2], children:[]}
, {id:5, name:'AAB', parent:2, ancestors:[1,2], children:[]}
]}
, {id:3, name:'AB', parent:1, ancestors:[1], children:[
//children of AB
{id:6, name:'ABA', parent:3, ancestors:[1,3], children:[]}
, {id:7, name:'ABB', parent:3, ancestors:[1,3], children:[]}
]}
]}
,
{id:8, name:'B', ancestors:[]}
] 나는 다음과 같은 결과 지금까지
[
{id:1,name:'A', ancestors:[], children:[2,3]}
,{id:2,name:'AA',parent:1, ancestors:[1], children:[4,5]}
,{id:4,name:'AAA',parent:2, ancestors:[1,2], children:[]}
,{id:5,name:'AAB',parent:2, ancestors:[1,2], chldren:[]}
,{id:3,name:'AB',parent:1, ancestors:[1], children:[6,7]}
,{id:6,name:'ABA',parent:3, ancestors:[1,3], children:[]}
,{id:7,name:'ABB',parent:3, ancestors:[1,3], children:[]}
,{id:8,name:'B', ancestors:[], children:[]}
]
를 얻을 수 있었다
이것을 작성함으로써 코드 : 여기
//var items = _GIVEN AT THE TOP_;
var indexedItem = items.map(function(item){
return item.id;
});
items.forEach(function(item){
if(!item.parent) {return;}
var parent = items[indexedItem.indexOf(item.parent)];
if(!parent.children){parent.children = [];}
parent.children.push(item.id);
});
왜 내 대답을 선택하고 그것을 무시하지 않았다? –