객체의 속성 경로를 나타내는 JavaScript 문자열 제공 점 표기법(예: "a.b")을 사용하여 이 문자열을 원하는 속성에 대한 실제 참조로 변환하는 것이 목표입니다. object.
이 변환을 수행하는 간단한 방법 중 하나는 eval() 함수를 사용하는 것입니다. eval() 사용은 일반적으로 보안상의 이유로 권장되지 않지만 입력 문자열이 제어되고 특정 구문을 준수할 것으로 예상되므로 이 특정 시나리오에 적용할 수 있습니다. 코드는 단순히 eval("obj" string)을 사용하여 원하는 속성 참조를 얻습니다.
덜 간결하지만 잠재적으로 더 많은 대안입니다. 효율적이고 강력한 접근 방식은 점 표기법 문자열을 키 이름 배열(예: ["a", "b"])로 변환한 후 이 배열을 참조로 사용하는 것입니다. 경로:
const keyArray = dotNotationString.split('.'); const value = obj[keyArray[0]][keyArray[1]];
세 번째 옵션은 입력 문자열을 사용하여 객체를 탐색하는 재귀 함수를 만드는 것입니다.
function getPropertyByDotNotation(obj, string) { if (!obj) { return undefined; } if (!string || string.length === 0) { return obj; } const [key, ...rest] = string.split('.'); return getPropertyByDotNotation(obj[key], rest.join('.')); }
이 재귀 접근 방식은 유연성을 제공하고 임의 깊이의 물체를 처리합니다.
선택 방법은 특정 요구 사항 및 성능 고려 사항에 따라 달라집니다. 신뢰할 수 있는 입력 및 타겟팅 단순성을 사용하여 작업하는 경우 eval()이 적합할 수 있습니다. 성능 문제가 있거나 더 복잡한 입력 검증이 있는 시나리오의 경우 배열 또는 재귀 접근 방식이 안정적인 대안을 제공합니다.
위 내용은 JavaScript 점 표기법 문자열을 객체 참조로 어떻게 변환할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!