JavaScript動的キー作成解説
JavaScriptにおける動的キー作成と連想配列
JavaScriptでは、オブジェクト(連想配列)のキーを動的に生成することができます。これは、変数の値や計算結果をキーとして使用できることを意味します。
基本的な例
let obj = {};
let key = "dynamicKey";
obj[key] = "value";
console.log(obj); // Output: { dynamicKey: "value" }
このコードでは、変数key
の値である"dynamicKey"
をキーとして使用し、値"value"
を割り当てています。
計算結果をキーとして使用
let obj = {};
let number = 5;
obj[number * 2] = "result";
console.log(obj); // Output: { 10: "result" }
ここでは、number * 2
の計算結果である10
をキーとして使用しています。
ループ内で動的に生成
let obj = {};
let array = ["key1", "key2", "key3"];
for (let i = 0; i < array.length; i++) {
obj[array[i]] = i;
}
console.log(obj); // Output: { key1: 0, key2: 1, key3: 2 }
この例では、配列の要素をキーとして使用し、インデックスを値として割り当てています。
便利なメソッド: Object.assign
Object.assign
メソッドを使用して、複数のオブジェクトのキーと値を新しいオブジェクトに結合することができます。
let obj1 = { key1: "value1" };
let obj2 = { key2: "value2" };
let mergedObj = Object.assign({}, obj1, obj2);
console.log(mergedObj); // Output: { key1: "value1", key2: "value2" }
注意点
- キーは重複できないため、同じキーで値を上書きします。
- キーには文字列またはシンボルを使用できます。
JavaScript動的キー作成解説
let obj = {};
let key = "dynamicKey";
obj[key] = "value";
console.log(obj); // Output: { dynamicKey: "value" }
- 説明
obj
という空のオブジェクトを作成します。key
という変数に"dynamicKey"
という文字列を代入します。- 最終的に、
obj
オブジェクトは{ dynamicKey: "value" }
となります。
let obj = {};
let number = 5;
obj[number * 2] = "result";
console.log(obj); // Output: { 10: "result" }
- 説明
number
という変数に5
を代入します。obj[number * 2]
で、number * 2
の計算結果である10
をキーとして使用し、値"result"
を割り当てます。- 最終的に、
obj
オブジェクトは{ 10: "result" }
となります。
let obj = {};
let array = ["key1", "key2", "key3"];
for (let i = 0; i < array.length; i++) {
obj[array[i]] = i;
}
console.log(obj); // Output: { key1: 0, key2: 1, key3: 2 }
- 説明
array
という配列に"key1"
,"key2"
,"key3"
を格納します。for
ループを使用して、配列の各要素をキーとして使用し、インデックスを値として割り当てます。- 最終的に、
obj
オブジェクトは{ key1: 0, key2: 1, key3: 2 }
となります。
let obj1 = { key1: "value1" };
let obj2 = { key2: "value2" };
let mergedObj = Object.assign({}, obj1, obj2);
console.log(mergedObj); // Output: { key1: "value1", key2: "value2" }
- 説明
obj1
とobj2
のキーと値を新しいオブジェクトmergedObj
にコピーします。- 最終的に、
mergedObj
オブジェクトは{ key1: "value1", key2: "value2" }
となります。
マップ(Map)オブジェクトの使用
- 例
- 特徴
- 組み込みのマップオブジェクトは、キーとして任意のデータ型(文字列、数値、オブジェクトなど)を使用できます。
- キーの重複を許容します。
- 効率的なキー検索を提供します。
let map = new Map();
map.set("key1", "value1");
map.set(123, "value2");
map.set({ name: "John" }, "value3");
console.log(map.get("key1")); // Output: "value1"
console.log(map.get(123)); // Output: "value2"
console.log(map.get({ name: "John" })); // Output: "value3"
オブジェクトのキーを文字列として扱う
- 特徴
- キーを文字列として扱うことで、動的なキー作成を実現できます。
- 柔軟性がありますが、キーの重複に注意が必要です。
let obj = {};
let key = "dynamicKey";
obj[key] = "value";
console.log(obj["dynamicKey"]); // Output: "value"
テンプレートリテラルの使用
- 特徴
- テンプレートリテラルを使用して、キーを動的に生成できます。
- 読みやすく、複雑なキーの生成に適しています。
let name = "John";
let age = 30;
let obj = {
[`user_${name}_${age}`]: "data"
};
console.log(obj["user_John_30"]); // Output: "data"
関数式によるキーの生成
- 特徴
- 関数を使用して、キーを動的に生成できます。
- 複雑なロジックによるキー生成に適しています。
function generateKey(name, age) {
return `user_${name}_${age}`;
}
let obj = {};
obj[generateKey("John", 30)] = "data";
console.log(obj["user_John_30"]); // Output: "data"
javascript associative-array