💡

配列操作チートシート

に公開

自分用チートシートです。

配列操作

方法 説明
リテラル構文 最も一般的で推奨される方法。 let arr = [1, 2, 3];
Array() コンストラクタ 特定の長さの空の配列を作成。引数1つの場合。 let arr = new Array(5); (空の要素5つ)
Array.of() 引数を要素とする配列を作成。 let arr = Array.of(1, 2, 3);
Array.from() イテラブル(反復可能)なオブジェクトから配列を作成。 let arr = Array.from("hello"); (['h', 'e', 'l', 'l', 'o'])

要素の追加と削除

メソッド 説明 結果
push() 配列の末尾に要素を追加。 arr.push(4); [1, 2, 3, 4] (新しい長さが返る)
pop() 配列の末尾から要素を削除し、その要素を返す。 let last = arr.pop(); [1, 2] (last は 3)
unshift() 配列の先頭に要素を追加。 arr.unshift(0); [0, 1, 2, 3] (新しい長さが返る)
shift() 配列の先頭から要素を削除し、その要素を返す。 let first = arr.shift(); [2, 3] (first は 1)
splice(start, deleteCount, ...items) 任意の位置から要素を追加/削除/置換。 arr.splice(1, 1, 5); (1番目から1つ削除し5を追加)
arr.splice(1, 0, 4); (1番目に4を追加)
[1, 5, 3]
[1, 4, 2, 3]

要素のアクセスと変更

方法 説明
インデックス参照 arr[index]でアクセス/変更。 arr[0]; (1)
arr[0] = 10; ([10, 2, 3])
length プロパティ 配列の長さを取得/設定。 arr.length; (3)
arr.length = 2; ([1, 2])

配列の結合と分割

メソッド 説明 結果
concat() 複数の配列を結合して新しい配列を返す。 arr1.concat(arr2); [1, 2, 3, 4, 5]
スプレッド構文 (...) 配列を結合する現代的な方法。 [...arr1, ...arr2];; [1, 2, 3, 4, 5]
slice(start|end) 配列の一部を切り出して新しい配列を返す。 arr.slice(1, 3); [2, 3] (元の配列は変更されない)

要素の検索とチェック

indexOf() 要素の最初のインデックスを返す。見つからない場合は -1。 arr.indexOf(2); 1
lastIndexOf() 要素の最後のインデックスを返す。 arr.lastIndexOf(2); 1
includes() 配列に特定の要素が含まれているか。 arr.includes(2); TRUE
find() 条件を満たす最初の要素を返す。 arr.find(num => num > 2); 3
findIndex() 条件を満たす最初の要素のインデックスを返す。 arr.findIndex(num => num > 2); 2
some() いずれかの要素が条件を満たすか。 arr.some(num => num > 3); TRUE
every() すべての要素が条件を満たすか。 arr.every(num => num > 0); TRUE

配列の反復処理

メソッド 説明
forEach() 各要素に対して関数を実行。戻り値なし。 arr.forEach(item => console.log(item));
map() 各要素に関数を適用し、新しい配列を返す。 arr.map(item => item * 2); ([2, 4, 6])
filter() 条件を満たす要素のみで新しい配列を返す。 arr.filter(item => item % 2 === 0); ([2])
reduce() 配列の要素を単一の値に集約する。 arr.reduce((acc, item) => acc + item, 0); (6)
for...of ループ イテラブルなオブジェクトを反復処理。 for (const item of arr) { console.log(item); }

配列の並び替えと反転

メソッド 説明 結果
sort() 配列をソート(文字列としてソートされるため注意)。 arr.sort(); [1, 2, 3] (数値の場合は比較関数が必要)
sort((a, b) => a - b) 数値の昇順ソート。 [3, 1, 2].sort((a, b) => a - b); [1, 2, 3]
sort((a b) => b - a) 数値の降順ソート。 [3, 1, 2].sort((a, b) => b - a);
reverse() 配列の要素の順序を反転させる。 arr.reverse(); [3, 2, 1]

配列を文字列に変換

メソッド 説明 結果
join(separator) 配列の全要素を結合して文字列を返す。 arr.join('-'); 1-2-3
toString() 配列をカンマ区切りの文字列に変換。 arr.toString(); 1,2,3

配列のコピー

方法 説明
スプレッド構文 (...) シャローコピー(浅いコピー)を作成する最も一般的な方法。 let newArr = [...arr];
slice() slice() を引数なしで呼び出すとシャローコピー。 let newArr = arr.slice();
JSON.parse(JSON.stringify(arr)) ディープコピー(深いコピー)の簡単な方法(ただし、関数やDateオブジェクトは失われる)。 let newArr = JSON.parse(JSON.stringify(arr));

Discussion