オブジェクトしたい(Object)
1const object: Record<string, string> = {
2 key1: "a1",
3 key2: "b1",
4 key3: "c1",
5}
Object(オブジェクト型)はJavaScriptのビルトイン型のひとつで、
キーと値の組み合わせ(Key-Value Pair)を持つデータ構造です。
キーに文字列またはシンボルを使用できます。
TypeScriptで型付する場合は
Record<string, T>もしくは
Record<symbol, T>とします。
値を追加したい
1const object = {};
2// ドット記法
3object.key1 = "a1";
4object.key2 = "b1";
5// ブラケット記法
6object["key3"] = "c1";
7
8object.key1; // -> "a1";
Objectのプロパティは.(ドット記法)もしくは[](ブラケット記法)でアクセスできます。
存在しないプロパティにアクセスした場合はundefinedになります。
ヒント
new Object()でも空のオブジェクトを作成できますが、
配列の場合と同様に、通常は{}リテラルで記述すれば問題ありません。
キーの存在を確認したい(in)
1const person = { name: "Alice" };
2
3if ("name" in person) {
4 // キーが存在するときの処理
5}
in演算子で、オブジェクトが特定のキーを持っているか確認できます。
配列にしたい(Object.keys / Object.values / Object.entries)
1// オブジェクト型のキーを配列に変換
2const keys = Object.keys(object);
3// -> ["key1", "key2", "key3"]
4
5// オブジェクト型の値を配列に変換
6const values = Object.values(object);
7// -> ["a1", "b1", "c1"]
8
9// オブジェクト型のアイテムを2次元配列に変換
10const entries = Object.entries(object);
11// -> [["key1", "a1"], ["key2", "b1"], ["key3", "c1"]]
Object.keys、Object.values、Object.entriesでオブジェクト型の変数を配列に変換できます。
TypeScriptの場合asで型アサーションすると型安全にできます。
Map型にしたい
1const map = new Map(Object.entries(object));
Object.entriesからMap型に変換できます。
ループしたい
1// Object.entriesと組み合わせたfor...ofループ
2for (const [key, value] of Object.entries(object)) {
3 console.log(`${key}=${value}`);
4}
Objectはそのままではfor...ofの対象にできないため、
Object.entriesで2次元配列に変換してからループします。
1// for...inループ
2for (const key in object) {
3 console.log(`${key}=${object[key]}`);
4}
for...inでも、キーを直接取り出してループできます。
JSONしたい(JSON.parse / JSON.stringify)
1// JSON文字列からオブジェクトに変換
2const object = JSON.parse("JSON文字列");
3
4// オブジェクトからJSON文字列に変換
5const json = JSON.stringify(object);
JSONクラスを使って、ObjectをJSON文字列に変換したり、
JSON文字列からオブジェクトを生成できたりします。