He pasado algunas horas tratando de entender dónde está el error en este código. La depuración indicó que la salida es 0 como debería ser para cualquier número menor que 0. Sin embargo, este código aún no puede pasar la prueba:
function sumArray(array) { return array < 1 || array == null ? 0 :array.reduce((a, b) => a + b) - Math.max(...array) - Math.min(...array); } console.log(sumArray([-3]))function sumValues (array) { if (array != null && array.length > 0) { let min = Math.min(...array); // lowest in array by spreading let max = Math.max(...array); // highest in array by spreading // Sum up the numbers in the array let sum = array.reduce((acc, val) => acc + val, 0); // Do the math let result = sum - max - min; if (result > 0) { return result } else { return 0 } } else { return 0 } } console.log(sumValues([1,2,3,4,5,6]))Definitivamente mejor:
function sumArray(array) { if (array == null || array.length <= 1) { return 0 } var max = Math.max(...array); var min = Math.min(...array); var sum = 0 for (i = 0; i < array.length; i++) { sum += array[i]; } return sum - max - min }