점 표기법 문자열을 통해 객체 하위 속성에 액세스
중첩된 객체를 처리할 때 깊이 묻혀 있는 속성에 액세스하는 것은 번거로울 수 있습니다. 문자열 점 표기법을 사용하여 이를 달성하는 이상적인 방법을 결정하는 것은 수많은 개발자를 당황하게 했습니다.
다음과 같이 정의된 객체를 고려해보세요.
var r = { a: 1, b: { b1: 11, b2: 99 } };
b2 값에 액세스하려면 일반적으로 다음을 사용할 수 있습니다. :
r.b.b2 r['b']['b2']
그러나 var s = "b.b2" 와 같은 문자열을 정의하고 액세스를 시도하는 경우 r[s] 또는 r.s는 실패합니다.
해결책:
한 가지 방법은 문자열을 점으로 분할하고 원하는 속성을 반복적으로 검색하는 사용자 정의 함수를 만드는 것입니다. 간단한 예는 다음과 같습니다.
function getDescendantProp(obj, desc) { var arr = desc.split("."); while (arr.length && (obj = obj[arr.shift()])); return obj; } console.log(getDescendantProp(r, "b.b2")); // Outputs 99
이 함수는 점으로 구분된 경로를 기반으로 개체 계층 구조를 재귀적으로 내려 최종 값을 반환합니다. 특히, 점 표기법을 사용하여 배열 인덱스에 액세스하는 것도 처리할 수 있습니다.
console.log(getDescendantProp({ a: [1, 2, 3] }, 'a.2')); // Outputs 3
위 내용은 JavaScript에서 점 표기법 문자열을 사용하여 중첩된 개체 속성에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!