配列の操作
ここではオフィススクリプトにおける配列の体系的な操作方法について解説します。
VBA との比較
VBA は非常に厳格な型定義を特徴としており、配列を要素数を変更するために変数の再定義が必要でした。
Office スクリプトでは複雑な型定義を実装しない限り、配列の要素数に制限はありません。
配列の定義
空の配列を定義する
要素を持たない空の配列を定義する場合は、値として[]のみを指定します。
空の配列を定義する場合は型推論がはたらかない(どのようなデータを格納するか分からない)ため、型の定義も同時に行う必要があります。
/** 空の配列 */
const array: string[] = [];
初期値を持つ配列を定義する
配列の定義と同時に初期値を設定する場合は、[]
の中に、カンマ区切りで要素を指定します。
型推論がはたらくため、型定義は省略可能です。
/** 初期値を持つ配列 */
const fruits: string[] = ['リンゴ', 'ミカン'];
/** 複数のデータ型を持つ配列 */
const mixed: (string | number)[] = [1200, 'バナナ'];
配列に要素を追加する
Array.push メソッドを使用して、配列にデータを追加できます。
const sports: string[] = [];
// 要素を追加
array.push('野球');
// 複数の要素を同時に追加する
array.push('サッカー', 'バスケ');
配列を結合する
複数の配列を結合し、1 つの配列としたい場合の記述方法です。
標準で多くのメソッドが用意されており、サンプルコードのどの方法を使っても同じ結果となります。
const array1 = ['リンゴ'];
const array2 = ['ミカン', 'バナナ'];
// 結合された配列
const joined1 = [...array1, ...array2];
const joined2 = array1.concat(array2);
const joined3 = [array1, array2].flat();
配列から要素を取得する
インデックスを指定して取得する
配列の n 番目の要素を指定して取得することができます。
インデックスは 0 から開始されるため、例えば 2 番目の要素を取得したい場合は、インデックスに 1 を指定します。
const array = ['リンゴ', 'ミカン', 'バナナ'];
array[1]; // ミカン
分割代入を使用して取得する
変数定義の方法である分割代入を使用することでも、配列のデータを操作することができます。
const array = ['リンゴ', 'ミカン', 'バナナ'];
const [apple, orange, banana] = array;