💡
配列操作チートシート
自分用チートシートです。
配列操作
方法 | 説明 | 例 |
---|---|---|
リテラル構文 | 最も一般的で推奨される方法。 | 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