1

假设我有一个如下所示的二维数组。如何找到第二个维度的最小值和最大值?(不使用循环)在这种情况下 var min = 1000 和 max = 5000。

var myArray= [
  [1308888000000, 2962],
  [1308974400000, 2963],
  [1309060800000, 2965],
  [1309147200000, 1000],
  [1309233600000, 2970],
  [1309320000000, 2974],
  [1309406400000, 5000],
  [1309492800000, 2976]]
4

1 回答 1

2

为了避免(显式)循环,请使用迭代器函数,如mapor reduce

 max = Math.max.apply(null, myArray.map(function(x) { return x[1]}))

或者

max = myArray.reduce(function(m, x) { 
    return Math.max(m, x[1])
}, myArray[0][1])

或按第二个“列”对整个数组进行排序并选择第一个元素:

max = myArray.sort(function(x, y) { return y[1] - x[1]})[0][1]
于 2013-06-01T01:01:25.480 回答