I've been spending a few hours trying to understand where the error is in this code. Debugging indicated that the output is 0 as it should be for any number less than 0. However, this code is still unable to pass the test:
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]))
CodePudding user response:
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]))
CodePudding user response:
Definitely better:
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
}