😃

[JavaScript]よく使うArrayメソッド

2023/09/09に公開

map

各要素に対して引数に渡された関数を実行し、その結果を新しい配列として返す。

const arr = [0, 1, 2, 3, 4, 5]

const result = arr.map(v => v*2)

console.log(result)
// [0, 2, 4, 6, 8, 10]

filter

条件に該当する要素を持つ新しい配列を返す。

const arr = [0, 1, 2, 3, 4, 5]

const result = arr.filter(v => v%2 === 0)

console.log(result)
// [0, 2, 4]

find

配列の要素を探索し、最初に条件に一致した要素を返す。

const arr = [0, 1, 2, 3, 4, 5]

const result = arr.find(v => v > 2)

console.log(result)
// 3

some

配列が条件を一つでも満たしている場合にtrueを返す。

const arr = [0, 1, 2, 3, 4, 5]

const result = arr.some(v => v === 4)
console.log(result)
// true

const result = arr.some(v => v === 10)
console.log(result)
// false

every

配列の要素が全て条件を満たしている場合にtrueを返す。

const arr = [0, 1, 2, 3, 4, 5]

const result = arr.every(v => v >= 0)
console.log(result)
// true

const result = arr.every(v => v > 2)
console.log(result)
// false

includes

特定の要素が配列に含まれるかどうかを返す。

const arr = [0, 1, 2, 3, 4, 5]

const result = arr.includes(3)

console.log(result)
// true

reduce

配列の要素を単一の出力に集約し、値を返却する関数。
下記コードでは、accumulatorが累積値、currentValが現在の要素である。

はじめに見たときは少しわかりにくいと思うが、配列を走査し、前の計算結果を次の処理に繋げていくイメージである。
例えば、最初の呼び出しでは、0+1=1となり、この結果の1が次の計算(1+2=3)、その次の計算(3+3=6)、更にその次の計算...というように計算されていく。

const arr = [0, 1, 2, 3, 4, 5]

const result = arr.reduce((accumulator, currentVal) => accumulator + currentValue)

console.log(result)
// 15

sort

配列の要素を文字列に変換後、昇順に並べ、ソートされた配列と同じ配列の参照を返す。

const months = ['March', 'Jan', 'Feb', 'Dec', 'April']
months.sort()
console.log(months)
// ["April", "Dec", "Feb", "Jan", "March"]

// 参照を返すため、以下のコードでも結果は同じ
const result = months.sort()
console.log(result)
// ["April", "Dec", "Feb", "Jan", "March"]

数値に対してsortを行いたい場合は、比較関数を実装する必要がある。
比較関数は2つの引数(ここではxとy)を取り、その差を返却する。
この差が正の場合、xはyより大きいとみなされ、yのあとにxが配置される。
負の場合、xはyより小さいとみなされ、yの前にxが配置される。

const arr = [22, 32, 12, 94, 54, 82, 2342, 182 ]
const result = arr1.sort((x, y) => {
  return x < y ? -1 : 1
})
console.log(result)
// [12, 22, 32, 54, 82, 94, 182, 2342]

// 以下でも良い
const arr = [22, 32, 12, 94, 54, 82, 2342, 182 ]
const result = arr1.sort((x, y) => x - y)
console.log(result)
// [12, 22, 32, 54, 82, 94, 182, 2342]

reverse

配列の要素を反転させる。

const arr = [0, 1, 2, 3, 4, 5]

const result = arr.reverse()

console.log(result)
// [5, 4, 3, 2, 1, 0]

concat

2つ以上の配列を結合する。
既存の配列を変更せず、新しい配列を返す。

const arr1 = [0, 1, 2, 3, 4, 5]
const arr2 = [6, 7, 8, 9, 10]

const result = arr1.concat(arr2)

console.log(result)
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

join

配列の全要素を連結した文字列を新たに生成し、その値を返す。

const arr = ['2023', '09', '09']

const result = arr.join('-')

console.log(result)
// "2023-09-09"

pop

配列から最後の要素を取り除き、その要素を返す。

const arr = [0, 1, 2, 3, 4, 5]

const result = arr.pop()

console.log(result)
// 5
console.log(arr)
// [0, 1, 2, 3, 4]

shift

配列から最初の要素を取り除き、その要素を返す。

const arr = [0, 1, 2, 3, 4, 5]

const result = arr.shift()

console.log(result)
// 0
console.log(arr)
// [1, 2, 3, 4, 5]

push

配列の末尾に要素を追加することができる。新しい配列の要素数を戻り値として返す。

const arr = [0, 1, 2, 3, 4, 5]

const result = arr.push(6)

console.log(result)
// 7
console.log(arr)
// [0, 1, 2, 3, 4, 5, 6]

unshift

配列の最初に要素を追加することができる。新しい配列の要素数を戻り値として返す。

const arr = [0, 1, 2, 3, 4, 5]

const result = arr.unshift(-1)

console.log(result)
// 7
console.log(arr)
// [-1, 0, 1, 2, 3, 4, 5]

Discussion