JS を使用して Number 型配列の最大要素を見つける方法

php中世界最好的语言
リリース: 2018-05-26 14:49:12
オリジナル
1719 人が閲覧しました

今回は、JS を使用して Number 型配列の最大要素を見つける方法と、JS を使用して Number 型配列の最大要素を見つけるときの注意点を説明します。以下は実践的なケースです。見てみましょう。

以下に4つの方法を紹介します。

1. ライブラリ関数を使用しない場合

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

function findMax1 (arr) {
  let result = 0;
  if (Array.isArray(arr)) {
    for (let i = 0; i < arr.length; i++) {
      result = arr[i] > result ? arr[i] : result;
    }
    
    return result;
  } else {
    console.error('The parameter arr is not an array');
    return;
  }
}
ログイン後にコピー

説明:

変数結果を使用して最大値を格納します。検索対象の配列を走査します。現在走査している要素が result よりも大きい場合、この要素を result に割り当てます。

2. Array.reduce() を使用します

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

function findMax2 (arr) {
  let result = 0;
  if (Array.isArray(arr)) {
    result = arr.reduce((a, b) => {
      return a > b ? a : b;
    }, 0);
    
    return result;
  } else {
    console.error('The parameter arr is not an array');
    return;
  }
}
ログイン後にコピー

説明:

reduce メソッドは、配列をアキュムレーターに縮小し、配列内の各要素を に縮小します。価値。

reduce は 2 つのパラメータを受け入れます:

最初のパラメータは callback で、これは前述の関数です。これには 4 つのパラメーターがあります:

  1. accumulator: アキュムレーター。最後のコールバック実行の結果です。初期値が指定されている場合、最初は初期値です。

  2. currentValue: 現在探索されている配列の要素。

  3. currentIndex: 現在探索されている配列の要素のインデックス (0 から始まります)。 InitialValue が指定されている場合は 1 から始まります。

  4. array: 現在 Reduce が適用されている配列。

2 つ目は、initialValue です。これは初期値であり、コールバック関数の最初の実行の最初の実パラメータとして使用されます。これはオプションです。このパラメータが指定されておらず、空の配列に適用された場合、エラーが報告されることに注意してください。

すると、上記のコードの意味は、比較のために配列を走査するたびに、大きい方、つまりアキュムレータが残り、配列要素との次の比較に使用されるということです。最終的にはこの値だけが残り、これが最大値になります。

3. apply と Math.max() の使用

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

function findMax3 (arr) {
  let result = 0;
  if (Array.isArray(arr)) {
    result = Math.max.apply(null, arr);
    
    return result;
  } else {
    console.error('The parameter arr is not an array');
    return;
  }
}
ログイン後にコピー

説明:

apply の説明は少し複雑なので、これ以上の説明は行いません。

これは 2 つのパラメーターを受け入れます。1 つ目は thisArg で、2 つ目は argsArray です。どちらもオプションです。簡単に言うと、関数を使用する場合、パラメータは配列として渡されます。

4. Math.max() を使用するだけです

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

function findMax4 (arr) {
  let result = 0;
  if (Array.isArray(arr)) {
    result = Math.max(...arr);
    
    return result;
  } else {
    console.error('The parameter arr is not an array');
    return;
  }
}
ログイン後にコピー

説明:

前のソリューションのアイデアに基づいて、ES6 にはスプレッド演算子 (.. .) を変換できます。配列内の要素は、カンマ区切りのシーケンスに区切られます。 Math.max() 関数のニーズを満たしています。

JS

1の数値、数学、配列に関する知識を紹介したいと思います。

Number オブジェクトの作成方法:

方法 1:

var 変数 = new Number (数値)

方法 2:

var 変数 = 数値;

よく使用されるメソッド:

toString() 数値を変換するinto 基本形式の文字列を指定します。 (数値を入力して数値に変換すると、number.toString(2))

toFixed() は小数点以下の桁を保持することを指定しており、四捨五入機能も備えています。

2, Math Between (0 を含む、1 を除く)、

四捨五入

3, Array 配列

オブジェクト:

配列の作成メソッド 1:

var 変数名 = new Array();配列。

方法 2:

var 変数名 = new Array(length) は、指定された長さの配列オブジェクトを作成します。

方法 3:

var 变量名 = new Array("元素1","元素2"...); 给数组指定元素创建数组 的对象。

方式4:

var 变量名 = ["元素1","元素2"...];

数组要注意的细节:

1. 在javascript中数组的长度是可以发生变化的。

var arr = new Array(); //创建了一个长度为0的数组对象。
arr[100] = 10;
document.write("arr长度:"+arr.length+"<br/>");
var arr2 = new Array("狗娃","狗剩","铁蛋");
arr2 = ["狗娃","狗剩","铁蛋","张三"];
document.write("arr2长度:"+arr2.length+"<br/>");
ログイン後にコピー

3.1数字的方法

a、concat把arr1与arr2的数组元素组成一个新的数组返回。  
arr1 = arr1.concat(arr2);
ログイン後にコピー

b、join使用指定的分隔符把数组中的元素拼装成一个字符串返回。

var elements = arr1.join(",");
ログイン後にコピー

c、pop :移除数组中的最后一个元素并返回该元素。

d、push:将新元素添加到一个数组中,并返回数组的新长度值。

arr1.push("你好");
ログイン後にコピー

e、reverse(); 翻转数组的元素

f、slice指定数组 的开始索引值与结束索引值截取数组的元素,并且返回子数组。(包头不包尾)

var subArr = arr1.slice(1,2);
ログイン後にコピー

g、sort排序,排序的时候一定要传入排序的方法。(不传时默认是按照ASCII表排列)

arr1 = [19,1,20,5];
arr1.sort(sortNumber); //排序,排序的时候一定要传入排序的方法。
function sortNumber(num1,num2){ 
return num1-num2;
}
ログイン後にコピー

h、splice第一个参数是开始删除元素的 索引值, 第二参数是删除元素的个数,往后的数据就是插入的元素(也可以不写)。

arr1.splice(1,1,"张三","李四","王五");
ログイン後にコピー

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

怎样使用vue2.0资源文件assets和static

如何使用Angular内Router(路由)应用

以上がJS を使用して Number 型配列の最大要素を見つける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート