A way to get all the names (keys) from an object and see what items it has.
オブジェクトの中にある「名前(キー)」をまとめて取り出して、どんな項目があるかを一覧で確認できるしくみ。
たとえば、下のように「人の情報」をまとめたオブジェクトがあるとします。
JavaScript
const person = {
name: "Taro",
age: 20,
country: "Japan"
};
console.log(Object.keys(person));
結果はこうなります
["name", "age", "country"]
このように「プロパティ名だけ」を配列([])として取り出すことができます。
Object.keys() は オブジェクトに入っているキーを配列で返す メソッドです。Object の部分は固定で書きます。forEach や for...of と組み合わせ)JavaScript
const keys = Object.keys(yourObject);
keys の結果は 配列。その配列を使えば、オブジェクトの中身を柔軟に扱えます。
Object.keys() で取得できるのは「自分の持っているプロパティ」だけ(継承されたものは含まれません)。実は keys() は Object.keys() 以外にも使える場面があります。型(データの種類)ごとに意味が少し違います。
JavaScript
const user = { name: "Taro", age: 20 };
console.log(Object.keys(user)); // ["name", "age"]
オブジェクトのキー一覧を配列で取り出します。
JavaScript
const map = new Map([
["apple", 100],
["banana", 150],
["orange", 120]
]);
for (const key of map.keys()) {
console.log(key);
}
結果:
apple banana orange
Map.keys() は順番を保ったままキーを取り出せます。Array.from(map.keys())。JavaScript
const set = new Set(["apple", "banana", "orange"]);
console.log(Array.from(set.keys())); // ["apple", "banana", "orange"]
Set にはキーの概念がないため、keys() は値(value)をそのまま返します。set.values() と結果は同じです。JavaScript
const fruits = ["apple", "banana", "orange"];
for (const index of fruits.keys()) {
console.log(index);
}
結果:
0 1 2
keys() はインデックス番号を順番に返します。values()。entries()。keys() は「データ構造を順番に読む」ためのメソッド。