紹介
JavaScriptでは、arrayデータ型は要素のリストで構成されています。JavaScriptの開発者が配列を操作するための多くの便利な組み込みメソッドがあります。元の配列を変更するメソッドはミューテータメソッドとして知られており、新しい値や表現を返すメソッドはアクセサメソッドとして知られています。
配列メソッドの第三のクラスとして、反復メソッドがあります。これは、配列内の各アイテムに対して一度に操作するメソッドです。これらのメソッドはループと密接に関連しています。このチュートリアルでは、反復メソッドに焦点を当てます。
このチュートリアルを最大限に活用するためには、配列の作成、インデックス付け、変更、およびループについてのいくつかの理解が必要です。これについては、チュートリアルJavaScriptでの配列の理解を確認できます。
このチュートリアルでは、イテレーションメソッドを使用して配列をループし、配列内の各アイテムに関数を実行し、配列の所望の結果をフィルタリングし、配列のアイテムを単一の値に縮小し、配列内を検索して値やインデックスを見つけます。
注意: 配列メソッドは適切にArray.prototype.method()
として記述されます。 Array.prototype
はArray
オブジェクト自体を指します。簡単のため、名前をmethod()
としてリストアップします。
Arrow Functionsの理解
このチュートリアル全体での多くの例では、JavaScriptのアロー関数式が使用されます。これは等号の後に矢印が続く形式です:=>
。
A function is a block of reusable code that can be executed. Traditionally, a function can be written with the following syntax:
執筆時点でのJavaScriptの最新バージョンでは、アロー関数の使用が可能で、次の構文で記述できます:
どちらの場合も、括弧内にパラメータを含めることができます。パラメータが1つだけの場合、括弧は省略することができます。例:
このチュートリアルの例では、アロー関数構文を使用します。JavaScriptの関数についてさらに理解するには、Mozilla Developer Networkの関数リファレンスを読んでください。Functions reference on the Mozilla Developer Network。
forEach()
forEach()
メソッドは、配列内の各要素に対して関数を呼び出します。
次の配列を変数fish
に割り当てましょう:
forEach()
を使用して、fish
配列の各アイテムをコンソールに出力できます。
これを行うと、次の出力が得られます:
Outputpiranha
barracuda
cod
eel
これを行う別の方法は、for
ループキーワードを使用し、それを配列のlengthプロパティと比較することです。
上記のコードは、forEach()
メソッドを使用した場合と同じ出力になります。配列で使用するために特に意図された反復方法として、forEach()
はこの特定のタスクに対してより簡潔でわかりやすいです。
map()
map()
メソッドは、配列内の各要素に対して関数の呼び出しを行い、その結果を新しい配列として作成します。
Outputpiranha
barracuda
cod
eel
Output[ 'piranhas', 'barracudas', 'cods', 'eels' ]
元のfish
変数は変更されませんが、pluralFish
には元の変数の変更されたバージョンが含まれています。
filter()
filter()
メソッドは、指定されたテストの結果をパスする要素を持つ新しい配列を作成します。
filter()
を使用して、特定の文字で始まるリスト内の項目のみを含む新しい配列を返すことができます。これを行うには、文字列のインデックスを利用して、配列内の各文字列項目の最初の項目(または文字)を呼び出します。
Output[ 'shark', 'squid', 'starfish' ]
配列内の項目が0
インデックスでs
を持っているかどうかをテストし、その結果を新しい変数に割り当てました。
filter()
は反復処理メソッドであり、元の配列を変更しません。
reduce()
reduce()
メソッドは、配列を単一の値に縮小します。
これは、配列内のすべての数値の合計を見つけるなど、数値で一般的に見られます。
Output108
reduce()
は、文字列や他のデータ型とも使用できます。 reduce()
によって返される値は、数値、文字列、配列、またはその他のデータ型である可能性があります。 reduce()
は、元の配列を変更しない反復処理メソッドです。
find()
find()
メソッドは、指定されたテストをパスする配列内の最初の値を返します。
例として、海洋生物の配列を作成します。
次に、配列内のどれかの生物が軟体動物であるかどうかをテストするためにfind()
メソッドを使用します。
Outputoctopus
関数isCephalopod()
において、octopus
が最初にテストを満たしたエントリーであったため、最初に返される値です。
find()
メソッドは、多くの値を含む配列を操作するのに役立ちます。
findIndex()
findIndex()
メソッドは、指定されたテストをパスする配列内の最初のインデックスを返します。
find()
メソッドのseaCreatures
の例を使用できます。
isCephalopod
テストを使用して、最初の一致の値の代わりにインデックス番号を見つけます。
Output1
octopus
は最初の一致する項目であり、インデックス番号が1
であるため、インデックス番号が返されます。
テストが満たされない場合、findIndex()
は-1
を返します。
Output-1
findIndex()
メソッドは、多くのアイテムを含む配列を扱う際に特に便利です。
結論
このチュートリアルでは、JavaScriptの主要な組み込みイテレーション配列メソッドを検討しました。イテレーションメソッドは配列内のすべてのアイテムに作用し、新しい関数を実行することがよくあります。配列をループし、各アイテムの値を変更し、配列をフィルタリングおよび縮小し、値とインデックスを検索する方法について説明しました。
配列の基本を復習するには、JavaScriptでの配列の理解を読んでください。JavaScriptの構文に関する詳細は、「JavaScriptの構文とコード構造の理解」のチュートリアルを参照してください。