재귀 속성 목록 구성
복잡한 개체를 탐색하고 해당 속성의 계층적 목록을 추출하려면 재귀 함수 사용을 고려하세요. 이 기술은 객체 구조 내의 중첩 관계를 효과적으로 캡처합니다.
중첩 속성이 있는 샘플 객체는 적절한 사례 역할을 합니다.
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, '')이 함수는 초기 객체와 빈 스택부터 시작하여 재귀적으로 작동합니다. 객체를 탐색하면서 각 속성에 대한 계층적 경로를 나타내는 스택 문자열을 구성합니다.
- 기본 유형 속성의 경우 함수는 속성 키와 해당 값을 기록합니다.
- 객체가 중첩된 경우 함수는 자신을 재귀적으로 호출하여 중첩 객체를 전달하고 속성 키를 스택 문자열에 추가합니다.
결과는 속성 키 목록이며 원본 객체의 계층 구조를 캡처합니다. .
이 솔루션은 재귀를 속성 반복과 효과적으로 통합하여 객체 속성의 계층적 목록을 구성하는 포괄적인 접근 방식을 제공합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3