array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
arr | divisor | return |
---|---|---|
[5, 9, 7, 10] | 5 | [5, 10] |
[2, 36, 1, 3] | 1 | [1, 2, 3, 36] |
[3,2,6] | 10 | [-1] |
function solution(arr, divisor) {
var answer = [];
for(let i=0; i<arr.length; i++){
if(arr[i] % divisor == 0)
answer.push(arr[i]);
}
if(answer.length == 0)
answer.push(-1);
return answer.sort((a,b)=>a-b);
}
기본 정렬 순서를 문자열에 따르기 때문에, 숫자열을 정렬할 경우 원하는대로 정렬이 되지 않음
function compareNumbers(a, b) { return a - b; }
다음 함수를 만들어 오름차순 정렬, sort() 메소드는 함수식과 함께 사용 가능
var numbers = [4, 2, 5, 1, 3]; numbers.sort(function(a, b) { return a - b; }); console.log(numbers); // [1, 2, 3, 4, 5]
더 간결하게 하기 위해 화살표 함수 적용
Array.sort((a, b)=> a - b);
// 파이썬으로 sort()를 사용하면 바로 오름차순 정렬이 되는 것을 확인할 수 있는 반면 자바스크립트는 사용법이 조금 다르다