配列の初期化

// 空の配列
const a: number[] = []; // []
a.push(42); // [42]
// 長さを指定
const b = new Array(3); // [undefined, undefined, undefined]
b[0] = 5; // [5, undefined, undefined]
b[1] = 7; // [5, 7, undefined]
// 初期値で満たす
const c = new Array(3).fill(-1); // [-1, -1, -1]
// 初期値で配列やオブジェクトを使うと、全部共有される
const d = new Array(3).fill([1]); // [[1], [1], [1]]
d[0].push(2); // [[1,2], [1,2], [1,2]]

配列の分割代入

const array = [1, 2, 3];
const [a, b, c] = array; // 1, 2, 3
const [d, e] = array; // 1, 2
const [f, ...g] = array; // 1, [2, 3]
const [h, , i] = array; // 1, 3

配列の操作

const a = [0, 1];
// 末尾に追加 複数指定可
a.push(2, 3); // [0, 1, 2, 3]
// 末尾から取り除く
a.pop()); // 戻り値 3、配列 [0, 1, 2]
a.pop()); // 戻り値 2、配列 [0, 1]
// 先頭に追加 複数指定可
a.unshift(-2, -1); // [-2, -1, 0, 1]
// 先頭から取り除く
a.shift(); // 戻り値 -2、配列 [-1, 0, 1]
a.shift(); // 戻り値 -1、配列 [0, 1]

配列の一部を取得

const a = [0, 1, 2, 3, 4];
// 開始から末尾(含まない)までを取得
a.slice(0, 2); // [0, 1]
a.slice(1, 4); // [1, 2, 3]
// 末尾を省略したときは最後まで
a.slice(2); // [2, 3, 4]

配列の要素を削除して取り出す

// 指定した位置以降の要素を削除する
const a = [0, 1, 2, 3, 4];
const b = a.splice(3);
console.log(a); // [0, 1, 2]
console.log(b); // [3, 4]
// 指定位置から指定数の要素を削除する
const c = [0, 1, 2, 3, 4];
const d = c.splice(1, 2);
console.log(c); // [0, 3, 4]
console.log(d); // [1, 2]
// 指定位置から指定数の要素を削除して要素を追加する
const e = [0, 1, 2, 3, 4];
const f = e.splice(1, 2, 97, 98, 99);
console.log(e); // [0, 97, 98, 99, 3, 4]
console.log(f); // [1, 2]

配列のソート (number)

const a = [10, 1, 5];
// デフォルトでは文字列としてソート
a.sort(); // [1, 10, 5]
// 昇順ソート
a.sort((a, b) => a - b); // [1, 5, 10]
// 降順ソート
a.sort((a, b) => b - a); // [10, 5, 1]

配列から条件に一致したものを取り出す

const a = [1, 2, 3, 4, 5, 6];
const v = a.filter((v) => v % 2 === 0); // [2, 4, 6]
const l = a.filter((v) => v % 2 === 0).length; // 3

配列を文字列化

const a = [1, 2, 3];
// 何も指定しないときはカンマ区切り
a.join(); // 1,2,3
// 区切り文字列を指定
a.join(" "); // 1 2 3
a.join(" - "); // 1 - 2 - 3
a.join(""); // 123

重複を許さないSet

// 重複したものは追加されない
// 追加された順番を維持する
const s = new Set<number>();
s.add(3); // 3
s.add(1); // 3, 1
s.add(3); // 3, 1
s.add(2); // 3, 1, 2
console.log(s.size); // 3
// Set を Array に変換
const a = Array.from(s); // [3, 1, 2]
// Array を Set に変換
const s2 = new Set([4, 6, 5]); // 4, 6, 5