12

通常、配列の最大値を見つける必要がある場合は、次の非常に単純なコードを使用します。 var max = Math.max.apply(Math, array);

ただし、現在、各行に5列の配列がある多次元配列があります。特定の列の最大値を見つける同様の方法はありますか? 今、私はやっています:

var maxFunc = function(data){
    var max = 0;
    data.forEach(function(value){
        max = Math.max(max, value[0]);
    });
    return max;
};

これを行うためのよりきれいで簡単な方法があるかどうか、私は興味がありましたか?

4

2 に答える 2

16

私はそれを次のように書きます:

Math.max.apply(Math, array.map(v => v[0]));

array.mapピッキング ロジックに基づいて元の配列を変換し、この場合は最初のアイテムを返します。変換された配列は、次にMath.max()

新しい配列の作成を避けるために、配列を単一の値に減らすこともできます。

array.reduce((max, current) => Math.max(max, current[0]), -Infinity)

ご覧のとおり-Infinity、配列が空の場合に返される の初期値を追加する必要があります。

于 2012-06-25T13:59:33.857 に答える