본문 바로가기
Javascript/자바스크립트 문제

[Javascript : programmers] 가까운 1 찾기 (Lv.0) ft. findIndex(), IndexOf()

by isfp_yykkng 2024. 8. 7.

[Javascript : programmers] 가까운 1 찾기 (Lv.0) ft. findIndex(), IndexOf()

문제

나의 정답 풀이

function solution(arr, idx) {
    for(let i=0; i<arr.length; i++){
        if(arr[i]==1 && i>=idx) return i
    }
    return -1
}

 

for 문을 이용하여 전체 배열을 돌면서 idx보다 크거나 같고 1인 원소를 찾으면 반환하고 없다면 -1을 반환하였다. 

* findIndex() 의 콜백함수에 조건을 달면 된다는 생각을 못했다...

 

findIndex() 사용 풀이

const solution = (arr, idx) => arr.findIndex((v,i) => v==1 && i>=idx)

 

findIndex() 함수는 인자로 받는 콜백함수를 만족하는 index를 반환하고 없다면 -1을 반환한다.

 

다른 사람 풀이 ( indexOf() )

const solution=(a,i)=>a.indexOf(1,i);

 

indexOf() 함수를 사용하여 찾을 값과 시작할 인덱스를 지정하여 손쉽게 코드를 작성할 수 있다.

 

학습 내용 ⭐

  • Array.indexOf( 찾을 요소, 시작 인덱스 ) : 시작 인덱스부터 찾을 요소를 찾아서 인덱스를 반환한다. (없으면 -1 반환)
  • Array.findIndex( 콜백 함수 ) : 콜백함수를 만족하는 인덱스를 반환한다. (없으면 -1 반환)

결론 ⭐⭐⭐

복잡한 연산이나 함수가 필요한 경우 findIndex() 함수를 사용하기 좋고 단순하게 배열의 인덱스를 찾는 경우 indexOf() 함수를 사용하기 좋다.