2014-09-20 3 views
-1

처럼 내 중첩 된 JSON 보이는 : 내가 얻을 OBJ를 구문 분석하려면 어떻게JSON 개체에 부모 ID의 목록을

enter image description here

:

var obj ={ "Name": "Main", "Id": "1", "Parent": "0", "children": [{ "Name": "Main1", "Id": "2", "Parent": "1", "children": [ ... 

obj가이처럼 보이는 트리 구조입니다 지정된 ID의 부모 중 누구의 ID입니까?

예컨대 JQuery와 함수 function getIdParentsOf('25') { }

출력 될 예 : 1까지 (25)의 부모 {20, 18, 10, 1 }이다.

+1

같은 http://jsfiddle.net/TrueBlueAussie/gdwjmqwh/6/

// If the required node is found, return true // matching nodes added to the result parameter var findParent = function (parentnode, id, result) { if (parentnode.Id == id){ result.push(parentnode.Parent); return true; } if (parentnode.children) { for (var i = 0; i < parentnode.children.length; i++) { var node = parentnode.children[i]; if (parentnode.Parent && findParent(node, id, result)) { result.push(parentnode.Parent); return true; } } } // no matches found - return false return false; } 

전화는 당신이 무엇을 의미합니까 *은 "내 특정 ID의 부모의 ID를 얻는 방법?"*? 샘플 json에서'id' 25는 어디에 있습니까? 어떻게 25가 결과를 반환합니까 * 1까지 *? 1은 어디에서 왔습니까? 귀하의 질문은 완전히 명확하지 않습니다. 실례합니다, –

+0

. 내 영어가 좋지 않아. 다음 링크를 참조하십시오 : http://upload7.ir/imgs/2014-09/97877257812703750606.png – hahamed

답변

2

선언은 동일한 유형의 하위 노드 배열을 포함하여 특정 속성이있는 객체 일뿐입니다. 기본적으로 트리 구조

이제 트리가 계층 구조임을 분명히하는 질문을 업데이트했습니다. 즉, 트리를 재귀 적으로 처리해야합니다. JSFiddle이

var result = []; 
findParent(obj, "2", result) 
console.log(result); 
// Displays an array of parent ids 
관련 문제