2021年11月25日 更新

JSのいろいろな配列操作

どうも、クラゲジュニアです。

今回は、ES2015から追加された配列処理を紹介します。

[TOC]

foreach

他の言語のforeachとほぼ同じ挙動。

const arr = [1, 0, 1000, 2089];
arr.forEach((elm) => console.log(elm));

出力

1
0
1000
2089

map

要素に何かしらの処理を加えた新しい配列を生成。

const arr = [1, 0, 1000, 2089];
const arr2 = arr.map((elm) => elm * elm);
console.log(arr2);

出力

[1, 0, 1000000, 4363921]

reduce

配列内の値の総和を返す。
accumulatorには、処理中の総和が代入される。
currentValueには、処理する値が代入される。
reduceの第二引数に数値を渡すと、accumulatorの初期値を変更できる。

const arr = [1, 0, 1000, 2089];
console.log(
  arr.reduce((accumulator, currentValue) => accumulator + currentValue)
);
console.log(
  arr.reduce((accumulator, currentValue) => accumulator + currentValue, 100)
);

出力

3090
3190

filter

条件に当てはまる要素で構成された配列を生成する。

const arr = [1, 0, 1000, 2089];
const arr2 = arr.filter((elm) => elm > 999);
console.log(arr2);

出力

[1000, 2089]

find

特定の要素を一つ返す。
1番初めに一致した値を返す。

const arr = [1, 0, 1000, 2089];
const arr2 = arr.find((elm) => elm > 999);
console.log(arr2);

出力

1000

some

条件式に1つでも真であれば真を返す。

const arr = [1, 0, 1000, 2089];
console.log(arr.some(elm => elm > 0))
console.log(arr.some(elm => elm > 3000));

出力

true
false

every

全てが真であれば真を返す。

const arr = [1, 0, 1000, 2089];
console.log(arr.every(elm => elm > 0))
console.log(arr.every(elm => elm > 3000));

出力

false
false

以上です。