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 の使用を避けたいと思っていますMath.max()。同じ結果を達成するために JavaScript を試しましたが、そうしない限り同じようには機能しません。

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のように、数字だけでなくそれ以上のものをサポートします。

phpと同等のjsmax

于 2013-01-09T23:33:50.080 に答える
0

サードパーティのライブラリを含めても問題ないと思われる場合は、 http: //underscorejs.org/#maxで目的が達成される可能性があります。

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