これに似たデータ構造があります->
var prices = [
{currency: '$', value: 52},
{currency: '$', value: 139},
{currency: '$', value: 31},
{currency: '$', value: 5}
];
そのデータから最高値を知りたいです。配列をループしてデータを収集できることはわかっていますが、それを行う最善の方法は何でしょうか?
これに似たデータ構造があります->
var prices = [
{currency: '$', value: 52},
{currency: '$', value: 139},
{currency: '$', value: 31},
{currency: '$', value: 5}
];
そのデータから最高値を知りたいです。配列をループしてデータを収集できることはわかっていますが、それを行う最善の方法は何でしょうか?
そのようなコード:
Math.max.apply(Math, prices.map(function(p) {return p.value;}));
を使用することで、これをかなりうまく行うことができArray.prototype.map
ますMath.max
。Array.map()
を返すので、それを使用してbyを呼び出すことができます。結果は次のようになりますMath.max
Function.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 );
これは同じ結果を返しますが、プログラムで作成しただけです。
prices.sort(function(a, b) {
return b.value - a.value;
});
その後prices[0].value
、最高になります。