2013-06-01 143 views
1

说我有一个像下面这样的二维数组。如何找到第二维的最小值和最大值? (不使用循环) 在这种情况下,var min = 1000,max = 5000。如何获得Javascript中二维数组的二维最小/最大值?

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

不使用循环?你到底什么意思? *有*必须循环。 – Pointy

+0

@Pointy我的意思是没有使用for或while语句 –

+0

你可以使用hackery的正则表达式和eval,但它更清洁循环(与for)。 –

回答

2

为了避免(显式)的循环使用的迭代函数像mapreduce

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] 
相关问题