多次元配列内の最大値取得:私は次のような配列を持っているJavaScriptやCoffeeScriptの
array = [[1, 5], [4, 7], [3, 8], [2, 3],
[12, 4], [6, 6], [4, 1], [3, 2],
[8, 14]]
私は必要なものは、この場合ので、セットの最初の値から最大の数であります12
。 オンラインいくつかの例を見ると、私はこれを達成するために見て最善の方法は次のとおりです。
Math.max.apply Math, array
問題は、単一次元配列でのみ動作です。私はどのように私のシナリオのためにこれを組み込むだろうか? (jqueryのは許さ)
エンド・ソリューション:
それは問題の一部ではありませんでしたが、私は配列から最小値と最大値の両方を必要とし、それは、物事を少し変更します。
unless device.IE
justTheDates = magnitudeArray.map (i) -> i[0]
@earliest = Math.min.apply Math, justTheDates
@latest = Math.max.apply Math, justTheDates
else
@earliest = magnitudeArray[0][0]
@latest = magnitudeArray[0][0]
for magnitudeItem in magnitudeArray
@earliest = magnitudeItem[0] if magnitudeItem[0] < @earliest
@latest = magnitudeItem[0] if magnitudeItem[0] > @latest
+1古典的な折り畳みの例の場合:)。 Aコーヒースクリプト[翻訳](http://coffeescript.org/#try:array%20%3D%20 [[1%2C%205]%2C%20 [4%2C%207]%2C%20 [3% 2C%208]%2C%20 [2%2C%203]%0A%0Amax%20%3D%20アレイ%20%28%28%2C%20%%29%20%%3E%20Math.max% (max、arr) - > Math.max max、arr [0])、 - 最大値、最小値、最小値、最小値、最小値、最小値、最小値、最小値、 Infinity' – epidemian
私はこの回答に対してより多くの票を見ています。誰かがそれについてのケースを作ることに興味を持っているだろうか? – Fresheyeball
@Fresheyeball:私は、他のものよりも優れているとは言いたくありません。 '.reduce()'は配列を単一の値に評価するだけです。 '.map()'は基本的に '.reduce()'で、新しいコレクションに評価します。したがって、 '.map()'の振る舞いは '.reduce()'を使って次のようにして実現することができます: 'array.reduce(function(arr、curr){arr.push(curr [0]); return arr;}、 ]) '。そしてあなたはまだ 'Math.max.apply ... 'を使います。 '.apply'で' .map() 'スタイルを使用する利点は、繰り返される' Math.max'呼び出しを避けることです。数字を直接減らすことの利点は、おそらく少し明確です。 –