配列[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 中国語/英語環境切り替えチュートリアル図
mysqlbinlogのバージョンを表示mysqlbinlog -V [--version] bin...
多くのプロジェクトでは、検証コードの送信など、カウントダウン機能を実装する必要があります。ここで、簡...
ハイパーリンク a タグはリンク ポイントを表し、英語の単語「anchor」の略語です。その機能は、...
Web アプリケーションが 1 台のマシンでのみ実行される場合、パフォーマンスを向上させるのは非常に...
ここでは、CSS テクニックを巧みに使用することで、HTML を変更せずにブログやテンプレートの外観...
1. 対照的な色を使用します。ここでのコントラストとは、テキストの色と背景色のコントラストを指します...
1. MySQLを削除する a. sudo apt-get autoremove --purge m...
この記事では、Vueの自己ネストツリーコンポーネントの使い方を参考までに紹介します。具体的な内容は次...
ヒントこのプラグインは https プロトコルでのみアクセスできます。http プロトコルはうまく機...
目次プロトタイプを理解するプロトタイプオブジェクトを理解するインスタンスプロパティとプロトタイププロ...
使用 <div id="アプリ"> <router-link ...
ビジネスシナリオ: 訪問者の訪問状況を記録する必要があるが、繰り返し記録することはできない挿入する前...
MySQL では、SQL ステートメント rename table を使用してテーブル名を変更できま...
第一に: CSSを導入する4つの方法CSS を導入する方法には、インライン スタイル、埋め込みスタイ...
この記事では、ログイン認証を実装するためのExpressの具体的なコードを例として紹介します。具体的...