oddOrEven.js (7kyu 35)

Codewars Algorithm


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.

odd 또는 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
oddOrEven([0, 1, 3]); // even

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
oddOrEven([0, 1, 3]); // even

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
oddOrEven([0, 1, 3]); // even
  • 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
oddOrEven([0, 1, 3]); // even