Решаю
задачу на codewars.
Мой код:
function findOutlier(integers){
let even; // 10 / 2 = 0;
let odd; // 11 / 2 = 1
let arraySum = (integers) => integers.reduce((acc, num) => acc + num, 0);
let numReturn;
let arrayIndex = 0;
if ((arraySum(integers) % 2) == 0) {
// if 1 / means there is one odd number in the array
integers.forEach(num => {
even = num % 2;
if (even < 0.5){
numReturn = integers[arrayIndex];
}
++arrayIndex;
})
} else{
// if 0 / means there is one even number in the array
integers.forEach(num => {
even = num % 2;
if (even > 0.5){
numReturn = integers[arrayIndex];
}
++arrayIndex;
})
}
return numReturn
/*
In order to find in which array an even / odd number,
we get the sum of the array and % gives us the answer 0/1 | Even Odd
*/
}
Один основной вопрос -
как можно это решить, мне нужен не сам ответ, а то какими способами это возможно решить, я пробовал найти сумму всего массива и получить остаток и если остаток 1/0, то это нечетное/четное, это необходимо, чтобы понять в массиве есть нечетное число или четное число и дальше в зависимости от того, какое число в самом массиве я вычислял его с помощью forEach и добавлял i++ дабы получить индекс самого числа, которое является лишним, но это работает только на простых числах, а если смотреть более сложные тесты в codewars, то там такое не прокатит -
какой вариант решения/формулу/технологии использовали бы вы для того чтобы найти в массиве где все четные одно не четное число и наоборот?