I do this:

function getMaxOfArray(numArray) { return Math.max.apply(null, numArray); } function getMinOfArray(numArray) { return Math.min.apply(null, numArray); } function squareSum(numbers){ return numbers.reduce(function(sum, n){ var a = (getMaxOfArray(numbers) - getMinOfArray(numbers)); var b = n + sum; return a - b; }, 0) } console.log(squareSum([1,2,2,33])); 

UPD Correct solution:

  function getMaxOfArray(numArray) { return Math.max.apply(null, numArray); } function getMinOfArray(numArray) { return Math.min.apply(null, numArray); } function sumArray(numbers){ var maxPlusMin = getMaxOfArray(numbers) + getMinOfArray(numbers); return numbers.reduce(function(sum, n){ return n + sum; }, -maxPlusMin ); } console.log(sumArray([1,5,5,101])); 

  • It is also necessary to distort the logic of calculating the amount, and then ask what is wrong. numbers.reduce(function(sum, n){ return n + sum;}, -getMaxOfArray(numbers) - getMinOfArray(numbers)); - Sergey

1 answer 1

4 iterations:

  sum nab return 1) 0 1 32 1 31 2) 31 2 32 33 -1 3) -1 2 32 1 31 4) 31 33 32 64 -32 

reduce is called on each element. You use max and min for each element, although you have to subtract only 1 time.

Something must be:

 function squareSum(numbers){ if(numbers.length == 0) return 0; var maxPlusMin = getMaxOfArray(numbers) + getMinOfArray(numbers); return numbers.reduce(function(sum, n){ return n + sum; }, -maxPlusMin ); } 
  • Please tell me how to check for an empty array in your code, if my empty reduce array turns out to fail and produces an error - spectre_it
  • one
    @ stas0k if(numbers.length == 0) return 0; - Suvitruf
  • kindly help add a check for undefined. The code is: function getMaxOfArray (numArray) {return Math.max.apply (null, numArray); } function getMinOfArray (numArray) {return Math.min.apply (null, numArray); } function sumArray (numbers) {var maxPlusMin = getMaxOfArray (numbers) + getMinOfArray (numbers); if (numbers) {return numbers.reduce (function (sum, n) {return n + sum;}, -maxPlusMin); } else {numbers = []; }} but I cannot pass the tests, writes: Test Results: pected Expected: 0, instead: undefined - spectre_it
  • @ stas0k what is the test? what's at the entrance? - Suvitruf
  • I have no such information. just a window and an inscription: Test Results: pected Expected: 0, instead of: - spectre_it