Javascript相当于PHP Max的数组


javascript equivalent to php max for arrays

我有一个函数在php中选择包含最多元素的数组

$firstArray = array('firstArray','blah','blah','blah');
$secondArray = array('secondArray','blah','blah');
$thirdArray = array('thirdArray','blah','blah','blah','blah');

那么我就得到了长度最大的变量名,像这样:

$highest = max($firstArray, $secondArray, $thirdArray)[0];

,但我正在开发一个应用程序,我想避免使用php,我已经尝试javascript的Math.max()实现相同的结果,但它不工作的方式相同,除非我做

Math.max(firstArray.length, secondArray.length, thirdArray.length)

但是这没有用,因为我需要知道包含最多元素的数组的名称。还有其他方法可以做到这一点吗?

该函数接受一个数组的数组作为输入,并返回最大的一个。

function largestArray(arrays){
   var largest;
   for(var i = 0; i < arrays.length; i++){
       if(!largest || arrays[i].length > largest.length){
          largest = arrays[i];
       }
   }
   return largest;
}

我们可以用你的例子测试一下:

firstArray = ['firstArray','blah','blah','blah'];
secondArray = ['secondArray','blah','blah'];
thirdArray = ['thirdArray','blah','blah','blah','blah'];
// should print the third array
console.log(largestArray([firstArray, secondArray, thirdArray]));

下面的url有一个等效的max()。它支持的不仅仅是数字,就像php一样:

如果你觉得包括第三方库没问题,也许http://underscorejs.org/#max做你想要的:

var aList = [firstArray, secondArray, thirdArray];
_.max(aList, function(each) { return each.length; });