SEB_FE_45(코드스테이츠)/section 2.

Unit 1. 고차함수(getIndex 풀이)

YTReeee 2023. 6. 24. 08:17

문제 출처 : 코드스테이츠 URCLASS 코플릿 - 고차함수

문제


코드

function getIndex(arr, num) {
  return arr.filter((el) => el<num).length
}

  // 배열의 요소(el)을 순회하면서,
  // el이 num 보다 작은 경우에만 새로운 배열에 추가해서 정렬한다.
  // 새로운 배열의 길이가 num의 인덱스가 된다.
  
//같은 풀이
function getIndex(arr, num) {
  return arr.filter(function(el) {
    return el < num ;
  }).length
}

회고

처음에는 arr에 num을 push한 후에 num의 인덱스를 찾아야 한다고 생각했다.

그래서 indexOf 메서드 같은걸 찾아봤는데, 주의사항에 arr.indexOf는 사용이 금지된다고 하였다.

이에 filter 메서드를 MDN에서 다시 찾아보니, 얕은 복사해서 새로운 배열을 만들어내는 것을 알 수 있었다.

출처: MDN, Array.prototype.filter()

그래서 배열의 요소를 순회하면서, 요소와 전달받은 num을 비교해서 작은 경우에만 배열에 추가되게 만들었다.

 

IndexOf나 sort를 이용해서 풀어보려고 했는데 어떻게 접근해야 할지 감이 안온다.. 다시 풀어보고 업데이트해야겠다.