숫자 값으로만 이루어진 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)); }
처음에는 배열 내에서 기준점을 정하기가 어려웠다. 첫 번째 요소와 두 번째 요소를 비교해서 작은 요소를 다른 배열에 담고, 다시 두 번째 요소를 세 번째 요소와 비교해서 작은 걸 또 옮겨 닮는 방식으로 했다.
또 아니면 첫 번째 요소와 마지막 요소를 비교하여 더 작은 값을 찾는 방식으로 했다.
하지만 이런 방법들로는 요소의 수를 줄여나가야 해서 복잡하고 정확하지 못했다. 비교할 기준을 고정할 필요가 있었다.
함수의 인자로 들어올 배열의 첫 번째 요소를 새로운 배열에 넣고 그 배열을 변수로 지정한다. 그 첫 번째 요소와 두번째, 세 번째, 네 번째 요소.. 차례대로 비교하여 더 작은 요소만 새 변수로 지정한 배열에 담아 최종적으로 가장 작은 숫자가 담기는 방식으로 함수를 만들었다.