에 재귀 적으로 중첩 된 배열을 만들기 내 배열다음 Node.js를
[
{id: 1, title: 'hello', parent: {number:0}},
{id: 2, title: 'hello', parent: {number:0}},
{id: 3, title: 'hello', parent: {number:1}},
{id: 4, title: 'hello', parent: {number:3}},
{id: 5, title: 'hello', parent: {number:4}},
{id: 6, title: 'hello', parent: {number:4}},
{id: 7, title: 'hello', parent: {number:3}},
{id: 8, title: 'hello', parent: {number:2}}
]
내가 출력으로 다음과 같이 중첩 된 개체를 갖고 싶어 :
이[
{id: 1, title: 'hello', parent: 0, children: [
{id: 3, title: 'hello', parent: 1, children: [
{id: 4, title: 'hello', parent: 3, children: [
{id: 5, title: 'hello', parent: 4},
{id: 6, title: 'hello', parent: 4}
]},
{id: 7, title: 'hello', parent: 3}
]}
]},
{id: 2, title: 'hello', parent: 0, children: [
{id: 8, title: 'hello', parent: 2}
]}
]
재귀 함수 좀 도와주세요 node.js에서이 작업을 수행하십시오.
다음은 재귀 함수는 내가 시도한 것입니다 :
function getNestedChildren(arr, parent) {
var out = []
for(var i in arr) {
if(arr[i].parent.number == parent.number) {
var children = getNestedChildren(arr, arr[i].id)
if(children.length) {
arr[i].children = children
}
out.push(arr[i])
}
}
return out
}
는이 문제를 해결하기 위해 도와주세요. 나는 이것에 초보자입니다.
당신은 무엇을 시도? 우리는 실제로 코딩 서비스가 아닙니다. 당신은 정말로 당신 자신이 어떤 시도를하고 나서 당신이 갇혀 있는지에 대해 질문해야합니다. – jfriend00
이것은 시도했지만 시도 할 수 없습니다. getNestedChildren (arr, parent) { var out = [] for (var i in arr) { if (arr [i] .parent.number == parent .number) { VAR 아이 = getNestedChildren (도착, 도착 [I] .ID) 경우 (children.length) { 도착 [I]를 .children의 아이들 = } out.push (도착 [I]) } } 반품 } – Sahaja
스택 오버플로에 오신 것을 환영합니다. 시도한 코드를 질문에 넣고 적절하게 형식을 정한 다음 결과가 무엇인지, 어디서 붙어 있는지, 구체적으로 코드에서 도움이 필요한 내용을 설명하십시오. 주석에 여러 줄 코드를 표시 할 수 없습니다. "편집"버튼을 사용하여 질문을 편집하여 시도한 코드와 추가 설명을 추가 할 수 있습니다. – jfriend00