[TIL] JavaScript - if,for문만 사용해서 배열에서 가장 작은 값 찾기

Simple Key·2020년 3월 26일
0

문제

숫자 값으로만 이루어진 arr라는 배열이 있다고 한다. 이 배열에서 가장 작은 값을 리턴하되 만약 배열이 비어있으면 0을 리턴하는 함수를 구현하시오!!

나의 풀이...

findSmallestElement(arr){
  let answer = [arr[0]];
  if(arr.length === 0){
    return 0;
  }
  else{
    for(let i=1; i<arr.length; i++){
      if(answer[0] > arr[i]){
        answer[0] = arr[i];
      }
    }     
  }
  return answer[0];
}
console.log(findSmallestElement(test));
}

시행착오

처음에는 배열 내에서 기준점을 정하기가 어려웠다. 첫 번째 요소와 두 번째 요소를 비교해서 작은 요소를 다른 배열에 담고, 다시 두 번째 요소를 세 번째 요소와 비교해서 작은 걸 또 옮겨 닮는 방식으로 했다.

또 아니면 첫 번째 요소와 마지막 요소를 비교하여 더 작은 값을 찾는 방식으로 했다.

하지만 이런 방법들로는 요소의 수를 줄여나가야 해서 복잡하고 정확하지 못했다. 비교할 기준을 고정할 필요가 있었다.

함수의 인자로 들어올 배열의 첫 번째 요소를 새로운 배열에 넣고 그 배열을 변수로 지정한다. 그 첫 번째 요소와 두번째, 세 번째, 네 번째 요소.. 차례대로 비교하여 더 작은 요소만 새 변수로 지정한 배열에 담아 최종적으로 가장 작은 숫자가 담기는 방식으로 함수를 만들었다.

profile
프론트엔드 개발자 심기현 입니다.

0개의 댓글