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); }