문제설명
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하라.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환할 것.
입출력 예
- arr의 원소 중 5로 나누어 떨어지는 원소는 5와 10이다. 따라서 [5, 10]을 리턴한다.
// solution 1
function solution(arr, divisor) {
let answer = [];
for(let i = 0; i < arr.length; i++) {
if(arr[i] % divisor === 0){
answer.push(arr[i]);
answer.sort((a, b) => a - b);
}
}
if (answer.length === 0) {
answer = [-1];
}
return answer;
}
// solution 2
function solution(arr, divisor) {
let answer = arr.filter((v, i) => v % divisor === 0).sort((a, b) => a - b);
if(answer.length === 0){
return [-1];
}
return answer;
}
📍 풀이과정
for문
을 사용해 arr의 원소 중 divisor로 나눠떨어지는 원소를 빈배열 answer에 추가시켜주었다.filter()
를 사용해 해당되는 원소만을 걸러내줄 수 있을 것 같아filter()
를 사용해 다시 풀어보았다.
- arr의 원소 중 divisor로 나눠떨어지는 원소를filter()
로 걸러낸 뒤,sort()
를 사용해 오름차순 정렬시켜준다.
- 배열에 원소가 하나도 없다면[-1]
을 반환하는 조건을 추가해준다.