配列[1,8,5,4,3,9,2]が与えられた場合、配列の最大値9と最小値1を取得するアルゴリズムを記述してください。 1.プロトタイププロパティを通じてmin()とmax()関数を拡張するアルゴリズム 1 の考え方は、カスタム min() 関数と max() 関数のループで最初の値と後続の値を比較し、最大値と最小値を動的に更新して結果を見つけることです。 // 最小値 Array.prototype.min = function () { min = this[0]とします。 len = this.length;とします。 (i = 1; i < len; i++) の場合 { もし this[i] < min ならば min = this[i] } 戻り最小値 } // 最大値 Array.prototype.max = function () { max = this[0]とします。 len = this.length;とします。 (i = 1; i < len; i++) の場合 { もし(this[i] > max) max = this[i] } 最大リターン } // 結果 console.log(arr.min()); // 1 console.log(arr.max()); // 9 2. Mathオブジェクトのmin()関数とmax()関数を使用するアルゴリズム 2 の主なアイデアは、apply() 関数を通じて関数の実行本体を変更し、配列をパラメーターとして apply() 関数に渡すことです。この方法では、配列は Math オブジェクトの min() 関数と max() 関数を直接呼び出して、戻り値を取得できます。 Array.min = 関数(配列) { Math.min.apply(Math, 配列) を返す } // 最大値 Array.max = function (array) { Math.max.apply(Math, 配列) を返す } // 結果 console.log(Array.min(arr)); // 1 console.log(Array.max(arr)); // 9 3. アルゴリズム2の最適化アルゴリズム 2 では、 min() 関数と max() 関数が配列型の静的関数として使用されていますが、チェーン呼び出しはサポートされていません。オブジェクト リテラルを使用して簡略化できます。 // 最小値 Array.prototype.min = function() { Math.min.apply({}, this) を返す } // 最大値 Array.prototype.max = function () { Math.max.apply({}, this) を返す } // 結果 console.log(arr.min()); // 1 console.log(arr.max()); // 9 アルゴリズム 2 とは異なり、検証中、min() 関数と max() 関数はインスタンス メソッドであるため、配列を介して直接呼び出すことができます。 4. 配列型のreduce()関数を使用するアルゴリズム 4 の主なアイデアは、reduce() 関数が initialValue を設定せず、配列の最初の要素をコールバック関数の最初のパラメーターとして直接使用し、それを後続の値と順番に比較することです。最大値を見つける必要がある場合、アキュムレータは各ラウンドで大きい値を返します。最小値を見つける必要がある場合、アキュムレータは各ラウンドで小さい値を返します。 // 最小値 Array.prototype.min = function () { this.reduce((pre, cur) => { を返します。 pre < cur を返す? pre : cur }) } // 最大値 Array.prototype.max = function () { this.reduce((pre, cur) => { を返します。 pre > cur を返す? pre : cur }) } // 結果 console.log(arr.min()); // 1 console.log(arr.max()); // 9 5. 配列型のsort()関数を使用するアルゴリズム 5 の主なアイデアは、配列のネイティブ sort() 関数を使用して配列をソートすることです。ソートが完了すると、最初の要素と最後の要素が配列の最小要素と最大要素になります。 sortArr = arr.sort((a, b) => a - b) とします。 // 最小値 sortArr[0] // 最大値 sortArr[sortArr.length - 1] // 結果 console.log(sortArr[0]); // 1 console.log(sortArr[sortArr.length - 1]); // 9 6. ES6のスプレッド演算子を使用する// 最小値 Math.min(...arr) // 最大値 Math.max(...arr) // 結果 console.log(Math.min(...arr)); // 1 console.log(Math.max(...arr)); // 9 これで、JavaScript で配列の最大値と最小値を実装する 6 つの方法についての記事は終了です。JavaScript 配列の最大値と最小値に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQL バージョン 5.7.24 のデータベース インストール プロセスの詳細なグラフィック説明
>>: CentOS6.8 中国語/英語環境切り替えチュートリアル図
ジブの紹介Jib は Google が開発した、Java アプリケーションの Docker および ...
目次原理ソースコード分析委任されたイベントバインディングすべてのサポートされているイベントを聴くネイ...
Linux システム、特にサーバー システムでは、デバイスのハードウェア情報を表示する必要がよくあり...
目次背景例誤解 - コールスタックを表示するためにウォッチでブレークポイントを設定する正しいアプロー...
目次初期作成方法ファクトリーパターンコンストラクターパターンコンストラクタパターンの最適化プロトタイ...
目次序文1. 問題の原因2. 解決策VueはelementUIテーブルtr thの高さと背景色を変更...
以前、Docker コンテナとローカル マシン間のファイル転送に関する記事を書きました。しかし、この...
前提条件: Percona 5.6 バージョン、トランザクション分離レベルは RR mysql>...
Nginx ログは、ユーザーの住所の場所や行動プロファイルなどを分析するために使用できます。Elas...
1. ログセグメンテーションのためのLog4j 1) log4j-1.2.17.jar、tomcat...
空のリンク:つまり、ターゲット エンドポイントとのリンクはありません。フォーマット <a hr...
複数行のテキストがオーバーフローすると省略記号が表示されますこの記事では 2 つの方法を推奨します。...
目次1. MySQLトリガーの作成: 1. MySQLトリガー作成構文: 2. MySQL作成構文の...
序文この実験では、デバッグ用に2つの仮想マシン(CentOs6とRed Hat 6)を準備します。 ...
目次1. 問題2. 解決策1. オブジェクトをanyとして宣言する2. オブジェクトのインターフェー...