[JQUERY] 재귀 적 객체 (트리)를 통해 루핑
JQUERY재귀 적 객체 (트리)를 통해 루핑
해결법
-
1.당신이 찾고있는 용 루프 :
당신이 찾고있는 용 루프 :
for (var key in foo) { if (key == "child") // do something... }
에 대한 ... 루프에서 객체의 프로토 타입에 추가 된 것을 포함하여 모든 열거 속성을 반복된다는 점에 유의해야합니다. 이러한 속성에 작용하지 않도록하려면 속성이 해당 객체에 속하는지 확인하기 위해 hasOwnProperty 방법을 사용할 수 있습니다 :
for (var key in foo) { if (!foo.hasOwnProperty(key)) continue; // skip this property if (key == "child") // do something... }
루프가 반복적으로 재귀 함수를 작성 단순하게 수행 될 수있다 :
// This function handles arrays and objects function eachRecursive(obj) { for (var k in obj) { if (typeof obj[k] == "object" && obj[k] !== null) eachRecursive(obj[k]); else // do something... } }
-
2.당신은 당신이 반복적으로 Object.keys를 사용할 수있는 관계의 트리를 돌아 가야합니다.
당신은 당신이 반복적으로 Object.keys를 사용할 수있는 관계의 트리를 돌아 가야합니다.
함수 경로 (항목) { 함수 ITER (R, P) { VAR 키 = Object.keys (R); 경우 (keys.length) { 창 keys.forEach (X => ITER (R [X] p.concat (X))); } result.push ([P]) } VAR 결과 = []; ITER (항목, []); 결과를 반환; } VAR 데이터 = { foo는 { 바 : '', 아이: { 그랜드 : { greatgrand : {} } } } } CONSOLE.LOG (경로 (데이터));
-
3.당신은 그 안에 내장 된 구문 분석 기능이있는 재귀 함수를 가질 수 있습니다.
당신은 그 안에 내장 된 구문 분석 기능이있는 재귀 함수를 가질 수 있습니다.
function parseObjectProperties (obj, parse) { for (var k in obj) { if (typeof obj[k] === 'object' && obj[k] !== null) { parseObjectProperties(obj[k], parse) } else if (obj.hasOwnProperty(k)) { parse(obj[k]) } } }
나는 그것이 작동하는 방법은 다음과 같습니다, 영업 이익의 푸 개체를 사용
var에 푸 = { 바 : 'A', 아이:{ B : 'B', 멋진:{ greatgrand : { C : 'C' } } } } // 구문 분석 funciton으로이 재귀 함수를 사용 함수 parseObjectProperties (OBJ, 파스) { (OBJ에서의 VAR K)에 대한 { 경우 (대해서 typeof OBJ [K] === '물체'&& OBJ [K]! == NULL) { parseObjectProperties (OBJ [K], 파스) } 다른 경우 (obj.hasOwnProperty (K)) { 파스 (OBJ [K]) } } } // *** // 다음이 경우 단지 콘솔의 속성에 원하는 작업을 적용 parseObjectProperties (foo는, 기능 (소품) { CONSOLE.LOG (소품) })
from https://stackoverflow.com/questions/2549320/looping-through-an-object-tree-recursively by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] HTML 페이지 간의 데이터 공유 (0) | 2020.10.10 |
---|---|
[JQUERY] JQuery와 가진은 iframe에 클릭 이벤트를 추가하는 방법 (0) | 2020.10.10 |
[JQUERY] 정지하여 setInterval (0) | 2020.10.10 |
[JQUERY] 대체 사용할 때 왜 자바 스크립트는 첫 번째 인스턴스가 대체됩니까? [복제] (0) | 2020.10.10 |
[JQUERY] 어떻게 jQuery를 사용하여 클래스의 변화에 이벤트를 발생 하는가? (0) | 2020.10.10 |