JavaScriptでのオブジェクトプロパティ
このページでは、JavaScriptでのオブジェクトプロパティに関する主要なメソッドについて解説します。それぞれのメソッドの用途や使用例を含め、詳しく説明します。
- Object.keys()
- Object.values()
- Object.entries()
- Object.fromEntries()
- Object.getOwnPropertyNames()
- Object.getOwnPropertySymbols()
- obj.hasOwnProperty()
- Object.hasOwn()
- obj.propertyIsEnumerable()
Object.keys()
Object.keys(obj)
は、オブジェクトの「列挙可能なプロパティ名」を配列として返します。
例
const obj = { a: 1, b: 2, c: 3 };
console.log(Object.keys(obj)); // ["a", "b", "c"]
数学的な対応
数学で言えば、オブジェクトを関数 \( f \colon X \to Y \) に見立てると、Object.keys
は定義域 \( X \) を取得します。
Object.values()
Object.values(obj)
は、オブジェクトの「列挙可能なプロパティ値」を配列として返します。
例
const obj = { a: 1, b: 2, c: 3 };
console.log(Object.values(obj)); // [1, 2, 3]
数学的な対応
同じく、関数 \( f \colon X \to Y \) における値域 \( \{f(x) \mid x \in X\} \) を取得する操作に対応します。
Object.entries()
Object.entries(obj)
は、オブジェクトの「プロパティ名と値のペア」を配列([キー, 値]形式の配列)として返します。
例
const obj = { a: 1, b: 2, c: 3 };
console.log(Object.entries(obj)); // [["a", 1], ["b", 2], ["c", 3]]
数学的な対応
関数 \( f \colon X \to Y \) におけるグラフ \( \{(x, f(x)) \mid x \in X\} \) を取得する操作に対応します。
Object.fromEntries()
Object.fromEntries(entries)
は、Object.entries()
で作成された配列をオブジェクトに変換します。
例
const entries = [["a", 1], ["b", 2], ["c", 3]];
const obj = Object.fromEntries(entries);
console.log(obj); // { a: 1, b: 2, c: 3 }
Object.getOwnPropertyNames()
Object.getOwnPropertyNames(obj)
は、オブジェクトの「すべてのプロパティ名」を配列として返します(列挙可能かどうかを問わない)。
例
const obj = { a: 1, b: 2 };
Object.defineProperty(obj, "c", { value: 3, enumerable: false });
console.log(Object.getOwnPropertyNames(obj)); // ["a", "b", "c"]
Object.getOwnPropertySymbols()
Object.getOwnPropertySymbols(obj)
は、オブジェクトに定義された「シンボルプロパティ」を取得します。
例
const sym = Symbol("key");
const obj = { [sym]: 42 };
console.log(Object.getOwnPropertySymbols(obj)); // [Symbol(key)]
obj.hasOwnProperty()
obj.hasOwnProperty(prop)
は、オブジェクトが特定のプロパティを直接持つかどうかをチェックします(継承されたプロパティは除外)。
例
const obj = { a: 1 };
console.log(obj.hasOwnProperty("a")); // true
Object.hasOwn()
Object.hasOwn(obj, prop)
はobj.hasOwnProperty(prop)
と同様に動作しますが、静的メソッドとして提供されます。
例
const obj = { a: 1 };
console.log(Object.hasOwn(obj, "a")); // true
obj.propertyIsEnumerable()
obj.propertyIsEnumerable(prop)
は、指定されたプロパティが列挙可能かどうかを判定します。
例
const obj = { a: 1 };
Object.defineProperty(obj, "b", { value: 2, enumerable: false });
console.log(obj.propertyIsEnumerable("a")); // true
console.log(obj.propertyIsEnumerable("b")); // false
以上がJavaScriptでのオブジェクトプロパティ操作に関する主要なメソッドの詳細です。これらを理解することで、より効率的にオブジェクトを操作できます。