프로그래밍 언어/HTML,CSS,JS

자바 스크립트 개체 배열에서 ID로 개체 찾기

Rateye 2021. 11. 11. 10:48
728x90
반응형
질문 : 자바 스크립트 개체 배열에서 ID로 개체 찾기

배열이 있습니다.

myArray = [{'id':'73','foo':'bar'},{'id':'45','foo':'bar'}, etc.]

배열의 구조를 변경할 수 없습니다. 45 의 ID를 전달 받고 있으며 배열의 해당 객체에 대한 'bar' 를 얻고 싶습니다.

JavaScript 또는 jQuery를 사용하여 어떻게합니까?

답변

find() 메소드를 사용하십시오.

myArray.find(x => x.id === '45').foo;

MDN에서 :

find() 메서드는 배열의 요소가 제공된 테스트 함수를 충족하는 경우 배열의 첫 번째 값을 반환합니다. 그렇지 않으면 undefined 가 반환됩니다.


대신 색인 을 찾으려면 findIndex() 사용하십시오.

myArray.findIndex(x => x.id === '45');

MDN에서 :

findIndex() 메서드는 제공된 테스트 함수를 충족하는 배열에서 첫 번째 요소의 인덱스를 반환합니다. 그렇지 않으면 -1이 반환됩니다.


일치하는 요소의 배열을 얻으려면 filter() 메서드를 사용하십시오.

myArray.filter(x => x.id === '45');

이것은 객체의 배열을 반환합니다. foo 속성 배열을 얻으려면 map() 메서드를 사용하여이를 수행 할 수 있습니다.

myArray.filter(x => x.id === '45').map(x => x.foo);

find() 또는 filter() 와 같은 메서드와 화살표 함수 는 IE와 같은 이전 브라우저에서 지원되지 않으므로 이러한 브라우저를 지원하려면 Babel ( polyfill 사용 )을 사용하여 코드를 트랜스 파일해야합니다.

출처 : https://stackoverflow.com/questions/7364150/find-object-by-id-in-an-array-of-javascript-objects
728x90
반응형