나 개발자 할래요
[JS] 나누어 떨어지는 숫자 배열 본문
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);
}
for(let i = 0; i < arr.length; i++) {
if(arr[i] % divisor == 0) {
answer.push(arr[i]);
}
}
`arr` 배열을 순회하며 `divisor`로 나누어 떨어지는 요소 `answer` 배열에 추가
if(answer.length == 0) {
answer.push(-1);
}
만약 `answer` 배열이 비어 있다면,
즉 `divisor`로 나누어 떨어지는 요소가 하나도 없다면
`answer` 배열에 `-1` 추가
return answer.sort((a, b) => a - b);
`answer` 배열을 오름차순으로 정렬한 후 반환
정렬을 위해 `sort` 메서드를 사용하고,
숫자 오름차순 정렬을 위해 비교 함수를 `(a, b) => a - b`로 전달
`arr` 배열에서 `divisor`로 나누어 떨어지는 요소들만
필터링하여 `answer` 배열에 저장
`filter` 메서드는 배열의 각 요소를 순회하면서
주어진 조건(여기서는 `v % divisor == 0`)을 만족하는 요소들로 이루어진 새로운 배열 반환
`v`는 `arr` 배열의 각 요소를 나타냄
`arr` 배열의 각 요소 `o`에 대해
` o % divisor === 0 `조건 검사
이 조건이 참이면 `answer` 배열에 `o`를 추가
`map` 메서드를 사용하지만,
실제로 배열을 변형하거나 새 배열을 만들지는 않고
단순히 조건 검사를 위해 사용
`o % divisor === 0 && answer.push(o)`는
논리 AND 연산자(&&)를 사용하여
조건이 참일 때만 `answer.push(o)`가 실행