配列内の値のサイズを比較するのは比較的一般的な操作です。たとえば、次のコードを使用してサイズを比較できます。は次のとおりです:
方法 1:
//最小值 Array.prototype.min = function() { var min = this[0]; var len = this.length; for (var i = 1; i < len; i++){ if (this[i] < min){ min = this[i]; } } return min; } //最大值 Array.prototype.max = function() { var max = this[0]; var len = this.length; for (var i = 1; i < len; i++){ if (this[i] > max) { max = this[i]; } } return max; }
開発用にクラス ライブラリを導入していて、そのクラス ライブラリが同じ名前のプロトタイプ メソッドも実装しているのではないかと心配な場合は、関数を生成する前に重複した名前を確認できます。
if (typeof Array.prototype['max'] == 'undefined') { Array.prototype.max = function() { ... ... } }
方法 2:
結果をすばやく取得するには、Math.max メソッドと Math.min メソッドを使用します。適用を使用すると、メソッドで呼び出し元のオブジェクトと受信パラメータを指定でき、受信パラメータは配列の形式で編成されます。 Math.max というメソッドがあり、呼び出しオブジェクトは Math で、複数のパラメータ
が存在します。Array.max = function( array ){ return Math.max.apply( Math, array ); }; Array.min = function( array ){ return Math.min.apply( Math, array ); };
しかし、John Resig はそれらを Math オブジェクトの静的メソッドにしており、マスターが最も好むチェーンコールを使用できません。ただし、このメソッドは、Math オブジェクトもオブジェクトであることを忘れずに、オブジェクトのリテラル値に記述することで、いくつかのビットを節約できます。
Array.prototype.max = function(){ return Math.max.apply({},this) } Array.prototype.min = function(){ return Math.min.apply({},this) } [1,2,3].max()// => 3 [1,2,3].min()// => 1
方法 3:
function getMaximin(arr,maximin) { if(maximin=="max") { return Math.max.apply(Math,arr); } else if(maximin=="min") { return Math.min.apply(Math, arr); } } var a=[3,2,4,2,10]; var b=[12,4,45,786,9,78]; console.log(getMaximin(a,"max"));//10 console.log(getMaximin(b,"min"));//04
方法 4:
var a=[1,2,3,5]; alert(Math.max.apply(null, a));//最大值 alert(Math.min.apply(null, a));//最小值
多次元配列は次のように変更できます:
var a=[1,2,3,[5,6],[1,4,8]]; var ta=a.join(",").split(",");//转化为一维数组 alert(Math.max.apply(null,ta));//最大值 alert(Math.min.apply(null,ta));//最小值
上記の内容は、エディターで共有される配列の最大値と最小値を取得するための Javascript メソッドをまとめたものです。