findSmallestElement
의 arr
인자는 숫자 값으로만 이루어진 배열입니다.arr
의 값들 중 가장 작은 값을 리턴 해주세요.arr
가 비어있으면 0을 리턴 해주세요.for문은 배열을 순회하는 가장 기본적인 순환문이다.
function findSmallestElement(arr) {
if(arr.length == 0){
return 0;
// 배열의 길이가 0이면 0을 반환.
} else {
let min = arr[0]; // 가장작은수는 일단 제일 첫번째 숫자.
for (i in arr){ // let i=0; i<arr.length; i++ 과 같음.
if(min > arr[i]) { // 만약 arr[i]가 min보다 작을때 밖에 있는 min 변수에
min = arr[i] // arr[i] 를 할당해줌. (계속 순환하기때문에 모든수를 검사.)
}
}return min; // 결과는 제일 작은수.
}
}
sort란 배열에 적용하는 메서드로 오름차순 및 내림차순으로 정렬해주는 메서드이다.
function findSmallestElement(arr) {
if(arr.length === 0 ){
return 0;
// 배열의 길이가 0이면 0을 반환.
} else {
arr.sort((x,y) => { // 배열 안에있는 수를 비교해서 정렬해줌
if(x > y) return 1; //앞에있는 수가 뒤에있는 수보다 크면 뒤로 한칸이동
if(x < y) return -1; // 앞에있는 수가 뒤에있는 수보다 작으면 앞으로 한칸이동
return 0; // 같으면 그대로
})
return arr[0] // 맨앞으로 옮겨진 제일 작은 수를 반환
}
}
sort에 대한 자세한 설명: https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
Math.min 은 배열의 가장 작은수를 반환해주는 메서드이다.
중요한점 …arr을 안쓰면 동작하지않음.
스프레드 연산자를 사용하여 배열그대로를 비교하지않고 배열의 각자의 수를 비교하게 해줘야함.
function findSmallestElement(arr) {
return arr.length === 0 ? 0 : Math.min(...arr);
}
Math.min에 대한 자세한 설명: https://paperblock.tistory.com/62