Home > Blockchain >  Sum without highest and lowest number
Sum without highest and lowest number

Time:07-16

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
}
  • Related