目次
配列内の最大値を取得します
配列内の最小値を取得します
その他のメソッド
組み込み関数 Math.max() および Math.min() メソッド
Math.max()
Math.min()
Function.prototype.apply() を使用すると、提供された this 配列とパラメーター配列を使用してパラメーターを呼び出すことができます。
概要
参考
初心者向けの勉強メモです。間違っている点があれば専門家の方にご指導いただければ幸いです。誤解を招いてしまい申し訳ございません。
Da Mo
ホームページ ウェブフロントエンド htmlチュートリアル JavaScript学習メモ:array_html/css_WEB-ITnoseの最大値と最小値の取得

JavaScript学習メモ:array_html/css_WEB-ITnoseの最大値と最小値の取得

Jun 21, 2016 am 08:54 AM

実際の業務では、配列の最大値や最小値を取得する必要がある場合があります。ただし、arr.max() や arr.min() などのメソッドは配列では提供されません。では、このようなメソッドを他の方法で実装することは可能でしょうか?そこで今日は、配列の最大値と最小値を抽出するいくつかの方法を整理します。

配列内の最大値を取得します

まずそれについて考えてみましょう:

  • 配列内の最初の要素を変数に代入し、この変数を使用します最大値として
  • 2 番目の要素から開始して配列の走査を開始し、シーケンス内の最初の要素と比較します。
  • 現在の要素が現在の最大値より大きい場合は、現在の要素を割り当てます。要素値 最大値
  • を与え、次の要素に移動して前のステップを続行します
  • 配列要素の走査が終了すると、この変数には最大値
が格納されます

コードは次のとおりです:

Array.prototype.max = function () {    // 将数组第一个元素的值赋给max    var max = this[0];    // 使用for 循环从数组第一个值开始做遍历    for (var i = 1; i < this.length; i++) {        // 如果元素当前值大于max,就把这个当前值赋值给max        if (this[i] > max) {            max = this[i];        }    }    // 返回最大的值    return max;}
ログイン後にコピー

例を見てみましょう:

var arr = [1,45,23,3,6,2,7,234,56];arr.max(); // 234
ログイン後にコピー

上記の例では、配列にはすべての数値が含まれています。配列がすべて数値でない場合に影響しますか?まずテストしてみましょう:

var arr = [1,45,23,3,6,2,7,234,56,'2345','a','c'];arr.max(); // 'c'
ログイン後にコピー

これは私たちが望む結果ではありません。 (これが解決策です)

これまでの研究により、for ループのパフォーマンスが forEach() よりも悪いことがわかっているため、上記のメソッドを forEach() メソッドに変更できます。 :

Array.prototype.max = function (){    var max = this[0];    this.forEach (function(ele,index,arr){        if(ele > max) {            max = ele;        }    })    return max;}var arr = [1,45,23,3,6,2,7,234,56];arr.max(); // 234
ログイン後にコピー

配列内の最小値を取得します

最大値を取得するというアイデアと同様に、最小値を取得する arr.min() メソッドを簡単に実装できます。配列内の値:

Array.prototype.min = function () {    var min = this[0];    this.forEach(function(ele, index,arr) {        if(ele < min) {            min = ele;        }    })    return min;}var arr = [1,45,23,3,6,2,7,234,56];arr.min(); // 1
ログイン後にコピー

その他のメソッド

上記の解決策に加えて、配列のreduce()メソッドを使用するなど、他の方法もあります。以前に学習した知識を思い出してください。reduce() メソッドはコールバック関数 callbackfn を受け取ることができ、配列内の初期値 (preValue) を、配列内で現在処理されている配列項目 (curValue) と比較できます。 curValue よりも preValue を返し、それ以外の場合は curValue を返すなどして、配列内の最大値を取得します。

Array.prototype.max = function() {    return this.reduce(function(preValue, curValue,index,array) {        return preValue > curValue ? preValue : curValue;    })}var arr = [1,45,23,3,6,2,7,234,56];arr.max(); // 234
ログイン後にコピー

同様に、同様のメソッドを使用して arr.mix() メソッドを実装することもできます。最小値を取得します:

Array.prototype.min = function() {    return this.reduce(function(preValue, curValue,index,array) {        return preValue > curValue ? curValue : preValue;    })}var arr = [1,45,23,3,6,2,7,234,56];arr.min(); // 1
ログイン後にコピー

組み込み関数 Math.max() および Math.min() メソッド

純粋な数値配列の場合は、組み込み関数を使用できます。 JavaScript Math.min() メソッドの Math.max() および Math.max()。これら 2 つの組み込み関数を使用して、配列内の最大値と最上位の値をそれぞれ見つけます。これら 2 つの組み込み関数を使用して配列の最大値と最小値を取得する前に、まず Math.max() と Math.min() の 2 つの関数について学習してください。

Math.max()

Math.max() 関数は、一連の数値の最大値を返します。

Math.max(1,32,45,31,3442,4); // 3442Math.max(10, 20);   //  20Math.max(-10, -20); // -10Math.max(-10, 20);  //  20
ログイン後にコピー

Math.min()

Math.min() 関数は、一連の数値の最小値を返す Math.max() 関数の逆です。 :

Math.min(10,20); //10Math.min(-10,-20); //-20Math.min(-10,20); //-10Math.min(1,32,45,31,3442,4); //1
ログイン後にコピー

これらの関数にパラメータがない場合、結果は -Infinity になります。パラメータが数値に変換できない場合、結果は NaN になります。最も重要なことは、これら 2 つの関数を数値の配列に直接使用できないことです。ただし、同様の方法がいくつかあります。

Function.prototype.apply() を使用すると、提供された this 配列とパラメーター配列を使用してパラメーターを呼び出すことができます。

// 取出数组中最大值Array.max = function( array ){    return Math.max.apply( Math, array );}; // 取出数组中最小值Array.min = function( array ){    return Math.min.apply( Math, array );};var arr = [1,45,23,3,6,2,7,234,56];Array.max(arr); // 234Array.min(arr); // 1
ログイン後にコピー

Math オブジェクトもオブジェクトであり、次のようなオブジェクト リテラルを使用して記述することができます。

Array.prototype.max = function () {    return Math.max.apply({},this);}Array.prototype.min = function () {    return Math.min.apply({},this);}var arr = [1,45,23,3,6,2,7,234,56];arr.max(); // 234arr.min(); // 1
ログイン後にコピー

実際、より簡単な方法があります。これを実現する ES2015 ベースの方法は、拡散演算子を使用することです:

var numbers = [1, 2, 3, 4];Math.max(...numbers) // 4Math.min(...numbers) // 1
ログイン後にコピー

この演算子により、関数呼び出しの位置で配列内の値が拡散されます。

概要

この記事では、配列から最大値と最小値を抽出するいくつかの方法をまとめました。これらのメソッドは数値配列のみを対象としていますが、配列に他のデータ型が含まれている場合、最大値と最小値のみを抽出する方法(実装方法をご存知の場合は、アドバイスをお願いします)。このうち、JavaScript の組み込み関数 Math.max() および Math.min() と Function.prototype.apply() を併用すると、配列内の最大値と最小値を簡単に取得できます。もちろん、最も簡単な方法は ES2015 の表示演算子を使用することです。より良い解決策がある場合は、以下のコメント欄で共有していただければ幸いです。

参考

  • 配列の最大値と最小値を取得する
  • JavaScript: 配列の最小値と最大値
  • の最大値を計算します。配列 /最小値

初心者向けの勉強メモです。間違っている点があれば専門家の方にご指導いただければ幸いです。誤解を招いてしまい申し訳ございません。

Da Mo

通称「Da Mo」、W3CPlus の創設者で、現在はモバイル タオバオで働いています。中国の Drupal コミュニティの中心メンバーの 1 人。彼は、HTML5、CSS3、Sass などのフロントエンド スクリプト言語について非常に深い理解と豊富な実践経験を持っており、特に CSS3 の研究に注力しており、中国で最初に研究と使用を行った人物の 1 人です。 CSS3テクノロジー。 CSS3、Sass、Drupalの中国人エバンジェリスト。 2014 年に『図解 CSS3: コア技術と事例実践』を出版しました。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

HTMLは初心者のために簡単に学ぶことができますか? HTMLは初心者のために簡単に学ぶことができますか? Apr 07, 2025 am 12:11 AM

HTMLは、簡単に学習しやすく、結果をすばやく見ることができるため、初心者に適しています。 1)HTMLの学習曲線はスムーズで簡単に開始できます。 2)基本タグをマスターして、Webページの作成を開始します。 3)柔軟性が高く、CSSおよびJavaScriptと組み合わせて使用​​できます。 4)豊富な学習リソースと最新のツールは、学習プロセスをサポートしています。

HTML、CSS、およびJavaScriptの役割:コアの責任 HTML、CSS、およびJavaScriptの役割:コアの責任 Apr 08, 2025 pm 07:05 PM

HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

HTMLでの開始タグの例は何ですか? HTMLでの開始タグの例は何ですか? Apr 06, 2025 am 12:04 AM

Anexampleapalofastartingtaginhtmlis、それはaperginsaparagraph.startingtagsaresentionentientiontheyinitiateelements、definetheirtypes、およびarecrucialforurturingwebpagesandcontingthomedomを構築します。

HTML、CSS、およびJavaScriptの理解:初心者向けガイド HTML、CSS、およびJavaScriptの理解:初心者向けガイド Apr 12, 2025 am 12:02 AM

webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

WebアノテーションにY軸位置の適応レイアウトを実装する方法は? WebアノテーションにY軸位置の適応レイアウトを実装する方法は? Apr 04, 2025 pm 11:30 PM

Y軸位置Webアノテーション機能の適応アルゴリズムこの記事では、単語文書と同様の注釈関数、特に注釈間の間隔を扱う方法を実装する方法を探ります...

Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Apr 04, 2025 pm 11:54 PM

GiteEpages静的Webサイトの展開が失敗しました:404エラーのトラブルシューティングと解像度Giteeを使用する

CSS3とJavaScriptを使用して、クリック後に周囲の写真を散乱および拡大する効果を実現する方法は? CSS3とJavaScriptを使用して、クリック後に周囲の写真を散乱および拡大する効果を実現する方法は? Apr 05, 2025 am 06:15 AM

画像をクリックした後、散乱と周囲の画像を拡大する効果を実現するには、多くのWebデザインがインタラクティブな効果を実現する必要があります。特定の画像をクリックして周囲を作成してください...

HTML、CSS、およびJavaScript:Web開発者に不可欠なツール HTML、CSS、およびJavaScript:Web開発者に不可欠なツール Apr 09, 2025 am 12:12 AM

HTML、CSS、およびJavaScriptは、Web開発の3つの柱です。 1。HTMLは、Webページ構造を定義し、などなどのタグを使用します。2。CSSは、色、フォントサイズなどのセレクターと属性を使用してWebページスタイルを制御します。

See all articles