>웹 프론트엔드 >JS 튜토리얼 >점 표기법 문자열을 사용하여 중첩된 JavaScript 개체 속성에 어떻게 액세스할 수 있습니까?

점 표기법 문자열을 사용하여 중첩된 JavaScript 개체 속성에 어떻게 액세스할 수 있습니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-28 22:04:11810검색

How Can I Access Nested JavaScript Object Properties Using a Dot Notation String?

JavaScript에서 점 표기법 문자열을 사용하여 중첩된 개체 속성에 액세스

객체를 조작할 때 깊게 중첩된 속성에 액세스해야 하는 경우가 많습니다. 점 표기법과 대괄호 표기법을 사용하면 이를 달성할 수 있지만 각 중첩 수준을 개별적으로 지정해야 합니다. 복잡한 객체의 경우 이는 지루하고 오류가 발생하기 쉽습니다.

실용적인 해결책은 점 표기법 문자열을 활용하여 하위 객체 속성에 직접 액세스하는 것입니다. 다음 구조의 객체를 상상해 보세요.

const r = { a: 1, b: { b1: 11, b2: 99 } };

점 표기법을 사용하여 값 99에 액세스하려면 일반적으로 다음과 같이 작성합니다.

r.b.b2;

그러나 동적으로 다음과 같은 변수 문자열을 사용하는 속성:

const s = "b.b2";

이 시나리오에서는 간단한 점 표기법(예: r.s) 또는 대괄호 표기법(r[s])은 작동하지 않습니다.

속성 검색을 위한 사용자 정의 함수

한 가지 접근 방식은 점 문자로 문자열을 입력하고 속성에 반복적으로 액세스합니다.

function getDescendantProp(obj, desc) {
    const arr = desc.split(".");
    while (arr.length && (obj = obj[arr.shift()]));
    return obj;
}

console.log(getDescendantProp(r, "b.b2")); // 99

이 함수는 다음을 사용하여 중첩 속성에 대한 액세스를 단순화합니다. 문자열 표현. 분할 문자를 적절하게 수정하여 배열 인덱스 액세스를 처리하도록 확장할 수도 있습니다.

위 내용은 점 표기법 문자열을 사용하여 중첩된 JavaScript 개체 속성에 어떻게 액세스할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.