JavaScript에서는 객체 속성에 액세스하는 여러 가지 방법이 있습니다. 그러나 문자열 경로를 사용하여 중첩된 속성에 액세스하는 것은 어려울 수 있습니다.
다음과 같은 개체가 있는 경우
var r = { a:1, b: { b1:11, b2: 99}};
경로 문자열을 지정하여 값 99에 액세스하려는 시나리오를 고려해보세요. var s = "b.b2". r.b.b2 또는 r['b']['b2']와 같은 전통적인 방법이 작동하지만 더 간결한 표기법을 사용하는 것이 더 나을 수도 있습니다.
function getDescendantProp(obj, desc) { var arr = desc.split("."); while(arr.length && (obj = obj[arr.shift()])); return obj; }
이 함수는 문자열을 점으로 반복적으로 분할하고 객체 구조를 탐색하여 궁극적으로 요청된 결과를 반환합니다. property.
console.log(getDescendantProp(r, "b.b2")); //-> 99
제공된 함수는 중첩된 개체 속성에 대한 액세스만 지원합니다. 보다 고급 사용법을 위해 배열 인덱스도 처리하도록 수정할 수 있습니다.
function advancedGetDescendantProp(obj, desc) { var arr = desc.split("."); while(arr.length) { let key = arr.shift(); if (isNaN(key)) { obj = obj[key]; } else { obj = obj[parseInt(key)]; } if (!obj) return undefined; } return obj; }
위 내용은 점 표기법 문자열을 사용하여 중첩된 JavaScript 개체 속성에 효율적으로 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!