
처음엔 .concat()을 이용해 풀어보려고 했다.
const solution = (num_list) => { let answer = 0; let a = 0; let b = 0; for(let i = 0; i < num_list.length; i++) { if(num_list[i]%2 !== 0) { a.concat(num_list[i]); } else { b.concat(num_list[i]); } } return answer = a + b; }
.concat()은 원래의 배열을 변경하지 않고 새로운 배열을 반환하는 메서드이다. 따라서, a와 b 변수에 값을 추가하기 위해서는 할당 연산자(=)를 사용하여 새로운 배열을 저장해야 한다.
또한 초기값으로 0으로 설정된 a와 b 변수에는 숫자가 아닌 배열이 저장되므로, 덧셈 연산을 수행할 수 없었다.
해결 방법
홀수들을 담기 위한 배열인 a, 짝수들을 담기 위한 배열인 b에 값을 추가하기 위해 .push() 메소드를 사용했다. 그리고 .join('') 메소드를 사용하여 각각의 배열 요소들을 문자열로 이어붙인 후, parseInt를 사용하여 정수형으로 변환해 합을 계산했다.
const solution = (num_list) => { let answer = 0; let a = []; let b = []; for(let i = 0; i < num_list.length; i++) { if(num_list[i] % 2 !== 0) { a.push(num_list[i]); } else { b.push(num_list[i]); } } const oddSum = parseInt(a.join('')); const evenSum = parseInt(b.join('')); return answer = oddSum + evenSum; }