자바 스크립트의 for 루프 함수 내부의 for 루프

시금치

나는이 for목적을 반복해야 루프를. 그러나이 개체는 내부에 다른 많은 개체 수준을 가질 수 있습니다. for루프 내부에 for루프를 원하는만큼 깊이 있게 만드는 함수를 어떻게 만들 수 있습니까?

다음과 같이 lvl변수는 다이빙해야하는 레벨의 수입니다.

var lvl = 5;

for (var i = 0; i < groups.length; i++) {
    var groups = groups[i];

    for (var i = 0; i < groups.length; i++) {
        var groups = groups[i];

        for (var i = 0; i < groups.length; i++) {
            var groups = groups[i];

        }
    }
}

예를 들어 다음과 같은 개체 트리가있는 경우 :

var foo = {
  child: {
    grand:{
      greatgrand: {
      }
    }
  }
}

개체의 특정 수준으로 다이빙하여 모든 개체 트리 이름을 콘솔로 기록하려면 어떻게 foo해야합니까?

dive(2); // would dive to level two (grand)

// would return the following in the console
child
grand
산톤

여기 있습니다. 객체 그래프를 반복하는 재귀 함수를 코딩했습니다. traverse 함수에 깊이 인수를 제공 할 수 있습니다.

JSFiddle이 여기 있습니다 . 출력은 개발자 도구 콘솔을 확인하십시오.
들여 쓰기가 추가 된 바이올린이 여기에 있습니다.

var obj = {
firstName: "John",
lastName: "Doe",
address1A: {
    street: "120 Washington St",
    city: "Mountain View",
    state: "CA",
    address2A: {
        street: "100 Washington st",
        city: "Mountain View",
        state: "CA",
        address3A: {
            street: "150 Washington st",
            city: "Mountain View",
            state: "CA",
            address4A: {
                street: "150 Washington st",
                city: "Mountain View",
                state: "CA",
            }
        }
    }
},
address1B: {
    street: "120 Washington St",
    city: "Mountain View",
    state: "CA",
    address2B: {
        street: "100 Washington st",
        city: "Mountain View",
        state: "CA",
        address3B: {
            street: "150 Washington st",
            city: "Mountain View",
            state: "CA",
            address4B: {
                street: "150 Washington st",
                city: "Mountain View",
                state: "CA",
            }
        }
    }
}
};

function traverse(initObj, depth) {
     depthTraversal(initObj, depth, 1);
}

function depthTraversal(objArg, depthArg, counterArg) {
    //create a closure for remembering loop variables
    return (function (myObj, myDepth, counter) {
        //console.log(myDepth + " - " + counter);
        if (myDepth < counter) {
          return;
        }
       //console.log(myObj);
       for (var prop in myObj) {
          //console.log(prop + " :" + typeof (myObj[prop]));
          if (myObj.hasOwnProperty(prop)) {
             if (typeof (myObj[prop]) === "object") {
                console.log(prop);
                depthTraversal(myObj[prop], myDepth, counter + 1);
             }
          }
      }
}(objArg, depthArg, counterArg)); //IIFE
};


traverse(obj, 4);

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

자바 스크립트 함수의 지연 루프

분류에서Dev

For 루프의 자바 스크립트 필터 함수

분류에서Dev

자바 스크립트의 for 루프 내부의 if 문

분류에서Dev

자바 스크립트 이벤트 루프 함수의 원 자성 실행

분류에서Dev

루프 내에서 자바 스크립트 함수 처리

분류에서Dev

자바 스크립트에서 루프 함수의 매개 변수 수정

분류에서Dev

PHP 스크립트의 for 루프 내부의 onkeyup 함수

분류에서Dev

AppleScript : 자바 스크립트의 루프

분류에서Dev

재귀 함수 내부의 루프가 자바 스크립트에서 완료되지 않은 이유

분류에서Dev

if / else 루프의 자바 스크립트 변수 선언

분류에서Dev

루프 자바 스크립트의 동적 변수

분류에서Dev

루프의 자바 스크립트 변수 이름

분류에서Dev

foreach 루프의 자바 스크립트 변수

분류에서Dev

PHP 루프 내부의 자바 스크립트 파일 변환

분류에서Dev

자바 스크립트 : "while"루프 내부의 링크에 onclick 첨부

분류에서Dev

자바 스크립트 | 부동 소수점 수 + 간격 루프

분류에서Dev

for 루프 내부의 xquery 개수 for 루프

분류에서Dev

루프 내에서 동일한 자바 스크립트 함수 호출

분류에서Dev

수학 함수로 루프의 자바 스크립트 할당 곱셈 연산자

분류에서Dev

다른 배열 자바 스크립트의 매개 변수로 배열 루프

분류에서Dev

변수 / while 루프 조건이있는 자바 스크립트의 문제

분류에서Dev

자바 스크립트의 루프에서 인수를 전달하는 방법

분류에서Dev

for 루프 자바 스크립트 내부의 IF 문에서 여러 AND 조건을 자바 스크립트

분류에서Dev

자바 스크립트 for 루프 내부의 MVC TextBoxFor (model => model [i] .prop)

분류에서Dev

자바 스크립트 : 중첩 된 (double) for 루프 내부의 setTimeout 클로저

분류에서Dev

함수의 for 루프

분류에서Dev

PHP while 루프 및 루프 내부의 다른 요소와 관련된 자바 스크립트 / Jquery 사용

분류에서Dev

for 루프 내부의 nodejs 요청 함수

분류에서Dev

for 루프 내부의 콜백 함수-Nodejs

Related 관련 기사

  1. 1

    자바 스크립트 함수의 지연 루프

  2. 2

    For 루프의 자바 스크립트 필터 함수

  3. 3

    자바 스크립트의 for 루프 내부의 if 문

  4. 4

    자바 스크립트 이벤트 루프 함수의 원 자성 실행

  5. 5

    루프 내에서 자바 스크립트 함수 처리

  6. 6

    자바 스크립트에서 루프 함수의 매개 변수 수정

  7. 7

    PHP 스크립트의 for 루프 내부의 onkeyup 함수

  8. 8

    AppleScript : 자바 스크립트의 루프

  9. 9

    재귀 함수 내부의 루프가 자바 스크립트에서 완료되지 않은 이유

  10. 10

    if / else 루프의 자바 스크립트 변수 선언

  11. 11

    루프 자바 스크립트의 동적 변수

  12. 12

    루프의 자바 스크립트 변수 이름

  13. 13

    foreach 루프의 자바 스크립트 변수

  14. 14

    PHP 루프 내부의 자바 스크립트 파일 변환

  15. 15

    자바 스크립트 : "while"루프 내부의 링크에 onclick 첨부

  16. 16

    자바 스크립트 | 부동 소수점 수 + 간격 루프

  17. 17

    for 루프 내부의 xquery 개수 for 루프

  18. 18

    루프 내에서 동일한 자바 스크립트 함수 호출

  19. 19

    수학 함수로 루프의 자바 스크립트 할당 곱셈 연산자

  20. 20

    다른 배열 자바 스크립트의 매개 변수로 배열 루프

  21. 21

    변수 / while 루프 조건이있는 자바 스크립트의 문제

  22. 22

    자바 스크립트의 루프에서 인수를 전달하는 방법

  23. 23

    for 루프 자바 스크립트 내부의 IF 문에서 여러 AND 조건을 자바 스크립트

  24. 24

    자바 스크립트 for 루프 내부의 MVC TextBoxFor (model => model [i] .prop)

  25. 25

    자바 스크립트 : 중첩 된 (double) for 루프 내부의 setTimeout 클로저

  26. 26

    함수의 for 루프

  27. 27

    PHP while 루프 및 루프 내부의 다른 요소와 관련된 자바 스크립트 / Jquery 사용

  28. 28

    for 루프 내부의 nodejs 요청 함수

  29. 29

    for 루프 내부의 콜백 함수-Nodejs

뜨겁다태그

보관