0

我在 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,我已经尝试使用 javascriptMath.max()来实现相同的结果,但除非我这样做,否则它的工作方式不同

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

但这没用,因为我需要知道包含最多元素的数组的名称。有没有其他方法可以实现这一目标?

4

3 回答 3

5

此函数将一个数组数组作为输入,并返回最大的一个。

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]));
于 2013-01-09T23:30:48.827 回答
0

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

js max 相当于 php

于 2013-01-09T23:33:50.080 回答
0

如果您对包含 3rd-party 库感到满意,也许http://underscorejs.org/#max 可以满足您的需求:

var aList = [firstArray, secondArray, thirdArray];
_.max(aList, function(each) { return each.length; });
于 2013-01-09T23:35:37.980 回答