JavaScript/알고리즘

프로그래머스 첫 번째로 나오는 음수 JS ( findIndex() )

hihiha2 2023. 5. 26. 03:24
반응형

문제설명

정수 리스트 num_list가 주어질 때, 첫 번째로 나오는 음수의 인덱스를 return하도록 solution 함수를 완성해주세요. 음수가 없다면 -1을 return합니다.

 

✅ 내 코드

function solution(num_list) {
  const find = num_list.findIndex(a => a<0)
  if(find >= 0) {
      return find
  } else {
      return -1
  }
}

 

💻 내가 이용한 메서드

findIndex(): 주어진 판별 함수를 만족하는 배열의 첫 번째 요소에 대한 인덱스를 반환

                     만족하는 요소가 없으면 -1을 반환

 

 

💻 학습한 것

findIndex()와 find()의 비교

 

1. findIndex(): 만족하는 인덱스를 반환 (없으면 -1을 반환)

2.find(): 만족하는 값을 반환 (없으면 undefined을 반환)

 

 

💻  다른사람 코드중에 배울 것

const solution = num_list => num_list.findIndex(v => v < 0)

나와 유사한 방법으로 풀었지만, 코드가 훨씬 간결하다.

findIndex가 조건을 만족하는 인덱스를 반환한다는 것은 알았지만,

만족하지 않을시에는 자동으로 -1을 반환한다는 것을 몰랐다.

굳이 그래서 else를 통해서 -1을 리턴하도록 하지 않아도 되기 때문에 훨씬 간단한 코드의 구현이 가능한 것이다.

 

findIndx 메서드의 특징을 잘 이해하면 위와같은 코드를 만들수 있겠다는 생각이 들었다.

 

 

🙋‍♀️ 내 생각

처음에는 includes나 indexOf를 쓰려고 생각했는데, 그렇게 코드를 만들다보니 코드가 자꾸 길어져서 findIndex() 사용했다.

만족하는 값을 찾는 find()는 써보고 findIndex()는 처음써보는데 꽤 유용해서 앞으로 자주 이용해야겠다.

어려운 문제는 아니지만 findIndex()를 모르면 이렇게 저렇게 생각을 해볼수있는 문제여서 풀면서 재미를 느꼈다.

반응형