我有一个函数在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; });