配列

同じ型のデータを順序つきで格納し、インデックスで要素にアクセスできるデータ構造

プログラミングデータ構造

配列とは

配列 (Array) は、複数のデータを順序つきで格納するデータ構造である。各要素にはインデックス (0 から始まる番号) でアクセスできる。

基本操作

// 作成
const fruits = ["apple", "banana", "cherry"];

// 参照 (インデックスは 0 始まり)
console.log(fruits[0]); // "apple"
console.log(fruits[2]); // "cherry"

// 長さ
console.log(fruits.length); // 3

要素の追加と削除

const items = [1, 2, 3];

// 末尾に追加
items.push(4);        // [1, 2, 3, 4]

// 末尾を削除
items.pop();           // [1, 2, 3]

// 先頭に追加
items.unshift(0);      // [0, 1, 2, 3]

// 先頭を削除
items.shift();         // [1, 2, 3]

// 任意の位置で追加・削除
items.splice(1, 1);    // [1, 3] (インデックス 1 から 1 個削除)
items.splice(1, 0, 2); // [1, 2, 3] (インデックス 1 に 2 を挿入)

主要な配列メソッド

メソッド 用途 戻り値
map 各要素を変換 新しい配列
filter 条件に合う要素を抽出 新しい配列
find 条件に合う最初の要素 要素 or undefined
reduce 全要素を 1 つの値に集約 集約結果
some 1 つでも条件を満たすか boolean
every 全て条件を満たすか boolean
includes 特定の値を含むか boolean
sort 並び替え 元の配列 (破壊的)
const numbers = [1, 2, 3, 4, 5];

const doubled = numbers.map(n => n * 2);       // [2, 4, 6, 8, 10]
const even = numbers.filter(n => n % 2 === 0); // [2, 4]
const sum = numbers.reduce((a, b) => a + b, 0); // 15
const found = numbers.find(n => n > 3);         // 4

破壊的メソッドと非破壊的メソッド

配列メソッドには元の配列を変更するもの (破壊的) と、新しい配列を返すもの (非破壊的) がある。

破壊的 非破壊的
push, pop, shift, unshift map, filter, slice
sort, reverse, splice concat, flat, toSorted

意図しない変更を防ぐため、非破壊的メソッドを優先する。

スプレッド構文

配列のコピーや結合にはスプレッド構文が便利である。

const a = [1, 2, 3];
const b = [4, 5, 6];

const copy = [...a];        // [1, 2, 3] (浅いコピー)
const merged = [...a, ...b]; // [1, 2, 3, 4, 5, 6]

型付き配列

TypeScript では配列の要素の型を指定できる。

const names: string[] = ["Alice", "Bob"];
const scores: number[] = [90, 85, 72];
const mixed: (string | number)[] = ["Alice", 90]; // ユニオン型

多次元配列

配列の中に配列を入れると多次元配列になる。

const matrix: number[][] = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9],
];
console.log(matrix[1][2]); // 6

よくある間違い

間違い 問題 対策
範囲外アクセス undefined が返る length で範囲チェック
sort の罠 文字列比較がデフォルト 比較関数を渡す
浅いコピー ネストしたオブジェクトは共有 structuredClone を使う
forEach で break break が使えない for...of に切り替える

配列とデータ構造の基礎は関連書籍に詳しい。

この記事は役に立ちましたか?

関連用語

関連する記事