[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() 함수를 사용하기 좋다.
'Javascript > 자바스크립트 문제' 카테고리의 다른 글
[Javascript : programmers] 합성수 찾기 (Lv.0) (0) | 2024.08.09 |
---|---|
[Javascript : programmers] 배열 만들기 4 (Lv.0) (0) | 2024.08.07 |
[Javascript : programmers] 간단한 식 계산하기 (Lv.0) (0) | 2024.08.07 |
[Javascript : programmers] 숫자 찾기 (Lv.0) (0) | 2024.08.07 |
[Javascript : progarmmers] 9로 나눈 나머지 (Lv.0) (0) | 2024.08.07 |