ヨーキョクデイ

いろいろ雑食

配列要素の最大値と最小値を取得したい

JavaScript 1.8 の Array#reduce を使ってみた。

// JavaScript 1.8
Array.prototype.max = function(){
    return this.reduce(function(a, b){ return a > b ? a : b; });
}
Array.prototype.min = function(){
    return this.reduce(function(a, b){ return a < b ? a : b; });
}

var array = [3, 1, 4, 1, 5, 9, 2, 6];
array.max();  // 9
array.min();  // 1

なるほど。
追記。同じく JavaScript 1.8 で追加された式クロージャを使うともう少し短く書けるな。JavaScript っぽくないけど。

// JavaScript 1.8
Array.prototype.max = function(){
    return this.reduce(function(a, b) a > b ? a : b);
}
Array.prototype.min = function(){
    return this.reduce(function(a, b) a < b ? a : b);
}