Problem
- Given an array of numbers, determine whether the sum of all of the numbers is odd or even.
- 주어진 숫자 배열에서, 모든 수의 합이 홀수인지 짝수인지를 결정한다.
- Give your answer in string format as ‘odd’ or ‘even’.
Solution 01
function oddOrEven(arr) {
let sum = 0;
for (let i = 0; i < arr.length; i++) {
sum += arr[i];
}
if (sum % 2 === 0) {
return 'even';
} else {
return 'odd';
}
}
oddOrEven([]); // even
oddOrEven([0]); // even
oddOrEven([1]); // odd
oddOrEven([0, 1, 2]); // odd (3)
oddOrEven([0, 1, 3]); // even (4)
Solution 02
function oddOrEven(arr) {
let sum = 0;
for (let i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum % 2 === 0 ? 'even' : 'odd';
}
oddOrEven([]); // even
oddOrEven([0]); // even
oddOrEven([1]); // odd
oddOrEven([0, 1, 2]); // odd (3)
oddOrEven([0, 1, 3]); // even (4)
Solution 03
function oddOrEven(arr) {
return arr.reduce((sum, i) => sum + i, 0) % 2 === 0 ? 'even' : 'odd';
}
oddOrEven([]); // even
oddOrEven([0]); // even
oddOrEven([1]); // odd
oddOrEven([0, 1, 2]); // odd (3)
oddOrEven([0, 1, 3]); // even (4)
reduce()
: 배열을 하나의 값으로 줄이고, 그 값을 반환한다.
Solution 04
function oddOrEven(arr) {
return arr.reduce((sum, i) => sum + i, 0) % 2 ? 'odd' : 'even';
}
oddOrEven([]); // even
oddOrEven([0]); // even
oddOrEven([1]); // odd
oddOrEven([0, 1, 2]); // odd (3)
oddOrEven([0, 1, 3]); // even (4)