매개변수 : arr
=> 자연수를 담은 배열, divisor
=> 자연수
divisor
의 자연수가 arr
배열에 담긴 자연수와 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수를 만들어라.
단, divisor
로 나누어 떨어지는 자연수( arr
) 가 없을 경우에는 배열에 -1을 담아서 반환해라.
arr
은 자연수를 담은 배열이다.- 정수
i
j
에 대해i ≠ j
이면arr[i] ≠ arr[j]
이다.divisor
는 자연수이다.array
는 길이 1이상인 배열이다.
arr
의 원소 중 5로 나누어 떨어지는 원소는 5와 10이다. 따라서 [ 5, 10 ]을 return
한다.arr
의 모든 원소는 1로 나누어 떨어진다. 원소를 오름차순으로 정렬해 [ 1, 2, 3, 36 ]을 return
한다.return
한다.function solution(arr, divisor) {
var answer = [];
var arr2 = arr.sort((a, b) => a - b);
var no = -1;
for(let i = 0; i < arr2.length; i++) {
arr2[i] % divisor === 0 ? answer.push(arr[i]) : 0;
}
if (answer.length === 0) {
answer.push(no)
}
console.log(answer);
return answer;
}
문제 설명
1. arr
에 담긴 배열을 오름차순으로 바꿔줘야하기에 arr2
라는 변수를 만들고 그 안에, 매개변수 arr
를 sort
메소드를 이용해 오름차순으로 정렬해준다.
2. for
문을 이용해 arr2
변수의 길이만큼 반복시켜준다.
3. 삼항연산자로 arr2
에 담긴 정수를 divisor
로 나누었을 때, 나누어 떨어지는 ( 나머지가 0 )숫자들은 빈 배열을 담은 answer
변수에 push
메소드를 사용해 arr
의 숫자들을 추가 시켜주고, 나누어 떨어지지 않는 수는 0을 반환해준다.
4. 나누어 떨어지는 수가 없는 경우에는 배열이 비어있기 때문에, 조건문을 이용해 answer
의 길이가 0일 경우 answer
배열에 -1을 push
추가 해준다.
( 나는 -1을 변수로 만들어서 그 변수를 추가했다. )
느낀점 :
-1을 반환하는 부분이 헷갈려서 조금 해맸다.
삼항연산자에 0이 아닌 answer.push(no)
를 했는데 [ 5, -1, -1, 10 ] 이런식으로 나와서 한참을 고민했다.
이 부분은 실무에서 에러처리를 할 경우 ? 에러처리를 따로 조건문을 걸어주는 상황일 것 같다는 생각이 들었다.