function minMax(items){items.reduce([最小,当前]最小<当前?最小:当前)};

时间:2016-10-08 00:52:17

标签: javascript functional-programming computer-science

我正在调用reduce两次以获得min和max但是insted是否有一种方法可以调用reduce只有一次并获得相同的结果   - 必须使用一次调用来减少。   - 例如,minMax([4,1,2,7,6])返回[1,7]

m = 60000

2 个答案:

答案 0 :(得分:0)

一次可以使用reduce减少一个以上的东西,初始值可以是任何东西,数组/对象等。

下面应该是你的事。



var values = [33,2,48,23,1,45,23,311,312,32,32]

function minMax(items) { 
 return items.reduce(function (a,b) { 
      a[0] = Math.min(a[0], b), 
      a[1] = Math.max(a[1], b); 
      return a; }, 
    [+Infinity, -Infinity])
}

console.log(minMax(values));




答案 1 :(得分:0)

只需使用Math min和max,并将绑定应用于Math;)



const nums = [4, 1, 2, 7, 6];

const minMax = numbers => [Math.min.apply(Math, numbers), Math.max.apply(Math, numbers)];

console.log(minMax(nums));