function solution(arr, divisor) {
var answer = [];
return answer;
}
function solution(arr, divisor) {
var answer = [];
for(i=0; i<arr.length; i++) {
if(arr[i] % divisor == 0) {
answer.push(arr[i]);
}
}
if(answer.length == 0) {
answer.push(-1);
}
answer.sort((a,b) => a - b);
return answer;
}
answer.push(arr[i]) 왜 뒤에 return answer(arr[i])로 끝나는 게 아니고 push가 들어가는지 이해가 안 됬었는데 이 이유 또한 1번과 비슷하다.
이전 문제들이었다면 그냥 값을 내면 그만이므로 간단히 return으로 끝냈겠지만
이 문제의 답은 [] 배열 안에 숫자가 들어간 [5,10]이 답이었으므로 나온 값을 내가 마지막에 배열 안에 push를 해줘야 답과 동일해진다.
.sort()를 뒤에 붙히면 무조건 배열 안의 값이 정렬되는지 알았는데 그건 배열 안의 값이 [3,2,1] 이런 식으로 모두 1의 자리 숫자일 때만이고 값이 [11, 2,32] 이런 식으로 되버리면 컴퓨터가 이것 또한 숫자의 앞자리에 맞게 배열을 정리시키므로 배열이 꼬이게 된다. 그러므로 배열 안의 값이 [3,2,1] 이런 식으로 한 자리가 아닐 경우가 다반사니까 뒤에 function을 넣어서 내가 원하는 오름차순으로 정확히 바꿔줘야한다.
(오름차순, 내림차순 또한 자바스크립트 문법 part 1에 있다.)