So the task is as follows:
You are given an array (which will have a length of at least 3, but could be very large) containing integers. The array is either entirely comprised of odd integers or entirely comprised of even integers except for a single integer N. Write a method that takes the array as an argument and returns this "outlier" N.
Examples [2, 4, 0, 100, 4, 11, 2602, 36] Should return: 11 (the only odd number)
[160, 3, 1719, 19, 11, 13, -21] Should return: 160 (the only even number)
My solution is as follows:
function findOutlier(integers) {
const arr = integers.map(mov => mov % 2);
const oddOrEven = arr.reduce((acc, cur) => acc + cur, 0);
if (oddOrEven === 1) {
let indexOdd = arr.findIndex(mov => mov === 1);
return integers[indexOdd]
} else {
let indexEven = arr.findIndex(mov => mov === 0)
return integers[indexEven]
}
}
console.log(findOutlier([2, 4, 0, 100, 4, 11, 2602, 36])); // 11
console.log(findOutlier([160, 3, 1719, 19, 11, 13, -21])); // 160
Can anyone see why this is returning as working for some tests but not all?