假设我有一个二维数组,如下所示。如何找到第二维的最小值和最大值? (不使用循环) 在这种情况下,var min = 1000,max = 5000。
var myArray= [
[1308888000000, 2962],
[1308974400000, 2963],
[1309060800000, 2965],
[1309147200000, 1000],
[1309233600000, 2970],
[1309320000000, 2974],
[1309406400000, 5000],
[1309492800000, 2976]]
答案 0 :(得分:2)
为了避免(显式)循环使用像map
或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]