"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 복잡한 객체의 계층적 속성 목록을 어떻게 재귀적으로 구성할 수 있나요?

복잡한 객체의 계층적 속성 목록을 어떻게 재귀적으로 구성할 수 있나요?

2024-11-02에 게시됨
검색:520

How can I recursively construct a hierarchical property list of a complex object?

재귀 속성 목록 구성

복잡한 개체를 탐색하고 해당 속성의 계층적 목록을 추출하려면 재귀 함수 사용을 고려하세요. 이 기술은 객체 구조 내의 중첩 관계를 효과적으로 캡처합니다.

중첩 속성이 있는 샘플 객체는 적절한 사례 역할을 합니다.

var object = {
    aProperty: {
        aSetting1: 1,
        aSetting2: 2,
        aSetting3: 3,
        aSetting4: 4,
        aSetting5: 5
    },
    bProperty: {
        bSetting1: {
            bPropertySubSetting : true
        },
        bSetting2: "bString"
    },
    cProperty: {
        cSetting: "cString"
    }
}

원하는 속성 키 목록을 계층적으로 구성하려면 다음과 같은 재귀 함수를 사용할 수 있습니다.

function iterate(obj, stack) {
    for (var property in obj) {
        if (obj.hasOwnProperty(property)) {
            if (typeof obj[property] == "object") {
                iterate(obj[property], stack   '.'   property);
            } else {
                console.log(property   "   "   obj[property]);
                $('#output').append($("
").text(stack '.' property)) } } } } iterate(object, '')

이 함수는 초기 객체와 빈 스택부터 시작하여 재귀적으로 작동합니다. 객체를 탐색하면서 각 속성에 대한 계층적 경로를 나타내는 스택 문자열을 구성합니다.

  • 기본 유형 속성의 경우 함수는 속성 키와 해당 값을 기록합니다.
  • 객체가 중첩된 경우 함수는 자신을 재귀적으로 호출하여 중첩 객체를 전달하고 속성 키를 스택 문자열에 추가합니다.

결과는 속성 키 목록이며 원본 객체의 계층 구조를 캡처합니다. .

이 솔루션은 재귀를 속성 반복과 효과적으로 통합하여 객체 속성의 계층적 목록을 구성하는 포괄적인 접근 방식을 제공합니다.

릴리스 선언문 이 글은 1729405459에서 재인쇄되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3