LoginSignup
5
5

More than 1 year has passed since last update.

【ES2015】Javascript一括処理系の配列メソッド使いどころイメージ

Last updated at Posted at 2022-07-19

配列メソッド使いこなせている?

配列を処理するときに毎回for (let i=0; i<n; i++)ってループ使っていませんか?
Javascriptの一般的な配列メソッドにはpoppushshiftunshiftslicespliceなどの配列自体の操作系もありますが、上記のように配列内の全ての要素に処理を行うことができるメソッドがあります。(モダンJavascript)
配列の処理は頻繁に出てくるかと思うので、息をするように使えるようになりたいです。

ES2015(ES6)の一括処理系の配列メソッドの使いどころ

全てに何かしらの同一の処理する系
mapforEach
全てに同一の条件一致を処理する系
filterfindsomeevery
左から順番に処理する系(おまけ)
reduce

メソッド 処理 返り値
map 全てに同じ処理 処理結果を配列に
forEach 全てに同じ処理 なし(順番に処理を行う)
filter 条件に一致するかを確認 一致するもののみを配列に
find 条件に一致するかを確認 一致するものの最初のみ
some 条件に一致するかを確認 1つでも一致していればtrue
every 条件に一致するかを確認 全て一致していればtrue
reduce 左から順番に処理 最終結果

使いどころチャート

こんなところでしょうか?(reduceを除く)

ES2015(ES6)の一括処理系の配列メソッドの使い方

map 処理:全てに同じ処理 / 返り値:処理結果を配列に

const nums = [1, 5, 10, 30]
double = nums.map((num) => {
  return num * 2
})
console.log(double) 
// [2, 10, 20, 60]

forEach 処理:全てに同じ処理 / 返り値:なし(順番に処理を行う)

const nums = [1, 5, 10, 30]
nums.forEach((num) => {
  console.log(num)
})
// 1
// 5
// 10
// 30

filter 処理:条件に一致するかを確認 / 返り値:一致するもののみを配列に

const nums = [1, 5, 10, 30]
const big = nums.filter((num) => {
  return num >= 10
})
console.log(big)
// [ 10, 30 ]

find 処理:条件に一致するかを確認 / 返り値:一致するものの最初のみ

const nums = [1, 5, 10, 30]
const big = nums.find((num) => {
  return num >= 10
})
console.log(big)
// 10

some 処理:条件に一致するかを確認 / 返り値:1つでも一致していればtrue

const nums = [1, 5, 10, 30]
const isSomeOver15 = nums.some((num) => {
  return num >= 15
})
console.log(isSomeOver15)
// true

every 処理:条件に一致するかを確認 / 返り値:全て一致していればtrue

const nums = [1, 5, 10, 30]
const isEveryOver15 = nums.every((num) => {
  return num >= 15
})
console.log(isEveryOver15)
// false

reduce 処理:左から順番に処理 / 返り値:最終結果

const nums = [1, 5, 10, 30]
const result = nums.reduce((pre, cur) => {
  pre + cur * 2, 0  // ,の後の0は初期値
})
console.log(result)
// 92
// 2 + 10 + 20 + 60 の結果
// 「pre + cur * 2」はコールバック関数

補足

意外と配列メソッド少ないので全部覚えることできそうですね!

5
5
0

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
5