5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Array反復メソッドまとめ

Last updated at Posted at 2018-02-08

なにこれ?

JavaScriptのArray反復メソッドを自分用にまとめたものです。
反復メソッドをうまく使い分けるために分類分けしました。

※筆者自身、JavaScript初心者なので間違いがあるかも。

注釈

2018/02/10
@raccy さんからコメント頂き、加筆修正しました。

JavaScriptにおいて…
真の値(truthy value)とはBooleanとして評価される場合でになるもの。
偽の値(falsy value)とはBooleanとして評価される場合でになるもの。

JavaScriptは条件文や繰り返しなどの場面で、任意の型を強制的にBooleanに型変換する。

undefinednullfalse+0-0NaN、空の文字列('')は**falseに、
これ以外のすべての有効な値は
true**に変換される。

基本形

一番シンプルな反復メソッド。

メソッド名 戻り値 説明
forEach なし 配列中の要素それぞれに対してコールバック関数を呼び出す。

コールバック関数は以下のような引数を持つ。

function callback(currentValue, index, array);
  • currentValue:現在処理されている配列の要素
  • index:現在処理されている配列の要素のインデックス
  • array:処理される配列全体

使わない引数は省略できる。

以降のメソッドは**forEach + α**の機能を持つ。

配列生成形

元の配列に反復処理を行い、新たな配列を作成する。

メソッド名 戻り値 説明
filter Array コールバック関数が真の値を返す要素のみからなる新たな配列を返す。
map Array 各要素にコールバック関数を適用した新たな配列を返す。

真偽値形

配列がある条件を満たすかを調べる。

メソッド名 戻り値 説明
every Bool コールバック関数が配列内の全ての要素に対して真の値を返した場合trueを返す。
some Bool コールバック関数が配列内の少なくとも1つの要素に対して真の値を返した場合trueを返す。

everyの場合、偽の値が返された時点で反復を終了する。
someの場合、真の値が返された時点で反復を終了する。

走査形

配列内からある条件を満たす要素を探す。

メソッド名 戻り値 説明
find 様々 コールバック関数が真の値を返す要素を返す。見つからない場合undefinedを返す。
findIndex Number コールバック関数が真の値を返す要素のインデックスを返す。見つからない場合-1を返す。

コールバック関数が真の値を返した段階で反復は打ち切られる。

畳み込み形

再帰というのは適した表現ではないかも。

メソッド名 戻り値 説明
reduce 様々 配列内の各要素に関数を適用し、1つの値を返す。

コールバック関数は以下のような引数を持つ。

function callback(accumulator, currentValue, index, array);
  • accumulator:累積した処理結果

要素を使って関数を適用した結果に、
次の要素を使って関数を適用した結果に、
次の要素を使って関数を適用した結果に…
って感じです。

具体例
const example = [1, 2, 3, 4, 5].reduce((acc, val) => {
	return acc + val;
});

console.log(example); //15
5
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?