>  Q&A  >  본문

문자열 경로를 사용하여 JavaScript 객체 및 배열의 ​​중첩 구조를 탐색합니다.

<p>다음과 같은 데이터 구조가 있습니다.</p> <pre class="brush:php;toolbar:false;">var someObject = { '1 부' : { '이름': '1부', '크기': '20', '수량' : '50' }, '2 부' : { '이름': '2부', '크기': '15', '수량' : '60' }, '파트3': [ { '이름': '파트 3A', '크기': '10', '수량' : '20' }, { '이름': '파트 3B', '크기': '5', '수량' : '20' }, { '이름': '파트 3C', '크기': '7.5', '수량' : '20' } ] };</pre> <p>다음 변수를 사용하여 데이터에 액세스하고 싶습니다. </p> <pre class="brush:php;toolbar:false;">var part1name = "part1.name"; var part2Quantity = "part2.qty"; var part3name1 = "part3[0].name";</pre> <p>part1name은 <code>someObject.part1.name</code> 값, 즉 "Part 1"으로 채워져야 합니다. 60으로 패딩된 part2Quantity의 경우에도 마찬가지입니다. </p> <p>순수한 JavaScript나 JQuery를 사용하여 이를 달성할 수 있는 방법이 있나요? </p>
P粉897881626P粉897881626431일 전383

모든 응답(2)나는 대답할 것이다

  • P粉720716934

    P粉7207169342023-08-16 19:39:27

    이제 _.get(obj, property)를 사용하여 lodash를 통해 지원됩니다. https://lodash.com/docs#get

    을 참조하세요.

    문서의 예:

    으아악

    회신하다
    0
  • P粉733166744

    P粉7331667442023-08-16 14:08:25

    이미 가지고 있는 유사한 코드를 기반으로 이것을 만들었고 작동하는 것 같습니다.

    으아악

    사용법:

    으아악

    http://jsfiddle.net/alnitak/hEsys/에서 실제 예제를 확인하세요.

    EDIT 어떤 사람들은 가장 왼쪽 인덱스가 객체의 적절하게 중첩된 항목과 일치하지 않는 문자열을 전달하면 이 코드에서 오류가 발생한다는 것을 알아차렸습니다. 이는 타당한 우려사항이지만 전화할 때 try / catch块来处理,而不是使这个函数静默地返回undefined를 사용하는 것이 더 낫다고 생각합니다.

    회신하다
    0
  • 취소회신하다