정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.
arr은 길이 1 이상인 배열입니다.
인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다.
function solution(arr) {
var answer = [];
if (arr.length <= 1){
// arr의 길이가 1과 같거나 작으면
return [-1];
// -1을 리턴한다.
}else{
arr. splice(arr.indexOf(Math.min(...arr)),1);
// arr의 최소값을 Math.mim와 스프레드 문법을 사용해 반환하고, indexOf를 통해 가장 작은 수가 위치해 있는 인덱를 얻어준다. splice()을 통해 (시작 인덱스,삭제 개수)를 인자로 넘겨 줘서 최솟값을 삭제해준다.
answer = arr;
}
return answer;
}
splice()
배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경한다.
const months = ['Jan', 'March', 'April', 'June'];
months.splice(1, 0, 'Feb');
// inserts at index 1
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April", "June"]
months.splice(4, 1, 'May');
// replaces 1 element at index 4
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April", "May"]
indexOf()
지정된 요소를 찾을 수 있는 첫 번째 인덱스를 반환하고 존재하지 않으면 -1을 반환한다.
const beasts = ['ant', 'bison', 'camel', 'duck', 'bison'];
console.log(beasts.indexOf('bison'));
// expected output: 1
// start from index 2
console.log(beasts.indexOf('bison', 2));
// expected output: 4
console.log(beasts.indexOf('giraffe'));
// expected output: -1
Math.min()
주어진 숫자들 중 가장 작은 값을 반환한다.
Math.min 메소드는 (2,3,4)와 같은 형식, 배열을 받지 못하므로 배열을 풀어줘야 한다.
배열을 푸는 방법으론 ....(spread 연산자)가 있다.
console.log([2,3,4]);
(3)[2,3,4]
console.log(...[2,3,4]);
2 3 4