0

これに似たデータ構造があります->

var prices = [
    {currency: '$', value: 52},
    {currency: '$', value: 139},
    {currency: '$', value: 31},
    {currency: '$', value: 5}
];

そのデータから最高値を知りたいです。配列をループしてデータを収集できることはわかっていますが、それを行う最善の方法は何でしょうか?

4

3 に答える 3

6

そのようなコード:

Math.max.apply(Math, prices.map(function(p) {return p.value;}));
于 2012-12-04T22:03:28.050 に答える
2

を使用することで、これをかなりうまく行うことができArray.prototype.mapますMath.maxArray.map()を返すので、それを使用してbyを呼び出すことができます。結果は次のようになりますMath.maxFunction.prototype.apply

var max = Math.max.apply(null, prices.map(function( entry ) {
    return entry.value;
}));

console.log( max ); // 139

上記のステートメントは等しい

Math.max( 51, 139, 31, 5 );

これは同じ結果を返しますが、プログラムで作成しただけです。

于 2012-12-04T22:03:14.467 に答える
1
prices.sort(function(a, b) {
    return b.value - a.value;
});

その後prices[0].value、最高になります。

于 2012-12-04T22:08:46.133 に答える