[JavaScript] 자바스크립트에서 조건을 만족하는 배열 요소(값) 가져오기

2022. 5. 27. 13:35Program/JavaScript

052_자바스크립트에서 조건을 만족하는 배열 요소(값) 가져오기

[적용]

  • 유저 정보가 담긴 배열에서 ID를 기준으로 정보를 가져오고 싶을 때

[문법]

메소드 의미 반환
배열.find(콜백함수) 콜백 함수 조건에 맞는 첫 요소  요소
배열.findIndex(테스트함수) 콜백 함수 조건에 맞는 첫 요소의 인덱스  숫자

 

[콜백함수 문법]

구문 의미
([요소*], [인덱스*], [기존배열]*) => 진리값 요소를 확인하고 진리값을 반환

[내용]

find()는 배열에서 조건을 만족하는 첫 요소를 가져온다.

const myArray = ['곰', '사자', '여우', '원숭이'];

// 배열에서 '사자'를 가져옴
const targetUser = myArray.find((element) => element === '사자');

// 다음과 같이 표기할 수도 있음
// const targetUser = myArray.find(element => {return element === '사자'});

console.log(targetUser); // 결과: '사자'

[예시1]

유저 정보 배열에서 가져온 데이터를 표시하는 검색 시스템 샘플을 확인해 보자

 

HTML                                                                                                                                                              index.html

<body>
    <div class="search-word-wrapper">
        <label>유저ID<input id="search-id-input" type="text"></label>
    </div>
    
    <p id="search-result">
        유저 검색 결과 없음
    </p>
</body>

JavaScript                                                                                                                                                          main.js

// id 키와 name 키를 가지는 유저 데이터 배열
const userDataList = [
    { id: 123, name: '곰' },
    { id: 1021, name: '사자' },
    { id: 6021, name: '여우' }
];

/** 검색 ID 입력창 */
const searchIdInput = document.querySelector('#search-id-input');

/** 검색 결과 표시창 */
const searchResult = document.querySelector('#search-result');

// 문자가 입력될 때마다 내용 체크
searchIdInput.addEventListener('keyup', () => {
    // 검색 ID 가져오기 
    const searchId = Number(event.target.value);
    findUser(searchId);
});

/** 유저 검색 */
function findUser(searchId) {
    // 해당 데이터 가져오기
    const targetData = userDataList.find((data) => data.id === searchId);
    
    // 해당 데이터가 없으면 '유저 검색 결과 없음' 표시 후 종료
    if (targetData == null) {
        searchResult.textContent = '유저 검색 결과 없음';
        return;
    }
    
    // 검색 결과의 이름을 표시
    searchResult.textContent = targetData.name;
}

 

실행결과

 


[예시2]

findIndex()는 배열에서 조건을 만족하는 첫 번째 요소의 인덱스를 반환한다.

const myArray = ['사자', '곰', '여우', '양'];

// 배열에서 '곰'을 가져옴
const targetIndex = myArray.findIndex((element) => element === '곰');

console.log(targetIndex);  // 결과: 1

 

 

 

 

 

참조 :
실무에 바로 적용하는 자바스크립트 코드레시피 278
아케다 야스노부, 카노 타케시 지음 / 이춘혁 옮김