Entonces la tarea es la siguiente:
Se le proporciona una matriz (que tendrá una longitud de al menos 3, pero podría ser muy grande) que contiene números enteros. La matriz está completamente compuesta por enteros impares o completamente compuesta por enteros pares excepto por un solo número entero N. Escriba un método que tome la matriz como argumento y devuelva este "valor atípico" N.
Ejemplos [2, 4, 0, 100, 4, 11, 2602, 36] Debería devolver: 11 (el único número impar)
[160, 3, 1719, 19, 11, 13, -21] Debería devolver: 160 (el único número par)
Mi solución es la siguiente:
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¿Alguien puede ver por qué esto vuelve a funcionar para algunas pruebas pero no para todas?