JavaScript オブジェクトの長さ: 配列とオブジェクトの違い
JavaScript オブジェクトの長さ
length プロパティ
配列の場合、length
プロパティは要素数を表します。
const arr = [1, 2, 3, 4, 5];
console.log(arr.length); // 5
Object.keys() メソッド
オブジェクトのキーの配列を取得するには、Object.keys()
メソッドを使用します。
const obj = {
name: "John Doe",
age: 30,
location: "Tokyo",
};
const keys = Object.keys(obj);
console.log(keys.length); // 3
const values = Object.values(obj);
console.log(values.length); // 3
for...in ループ
オブジェクトのプロパティをループするには、for...in
ループを使用できます。
let count = 0;
for (const key in obj) {
count++;
}
console.log(count); // 3
const entries = Object.entries(obj);
console.log(entries.length); // 3
注意点
- オブジェクトに
length
プロパティが定義されている場合、Object.keys()
メソッドやObject.values()
メソッドよりも優先的にlength
プロパティの値が返されます。 - オブジェクトのプロパティに数値以外の値が含まれている場合、
length
プロパティの値はオブジェクトの実際の要素数とは一致しない場合があります。
JavaScript オブジェクトの長さを取得するには、いくつかの方法があります。 状況に応じて適切な方法を選択してください。
配列の長さ
const arr = [1, 2, 3, 4, 5];
// length プロパティ
console.log(arr.length); // 5
// Object.keys() メソッド
const keys = Object.keys(arr);
console.log(keys.length); // 5
オブジェクトの長さ
const obj = {
name: "John Doe",
age: 30,
location: "Tokyo",
};
// Object.keys() メソッド
const keys = Object.keys(obj);
console.log(keys.length); // 3
// Object.values() メソッド
const values = Object.values(obj);
console.log(values.length); // 3
// for...in ループ
let count = 0;
for (const key in obj) {
count++;
}
console.log(count); // 3
// Object.entries() メソッド
const entries = Object.entries(obj);
console.log(entries.length); // 3
5
5
3
3
3
オブジェクトの長さを取得するその他の方法
Object.getOwnPropertyNames() メソッド
const obj = {
name: "John Doe",
age: 30,
location: "Tokyo",
};
const names = Object.getOwnPropertyNames(obj);
console.log(names.length); // 3
const descriptors = Object.getOwnPropertyDescriptors(obj);
console.log(Object.keys(descriptors).length); // 3
const keys = Reflect.ownKeys(obj);
console.log(keys.length); // 3
スプレッド構文
オブジェクトのプロパティを配列に変換するには、スプレッド構文を使用できます。
const arr = [...obj];
console.log(arr.length); // 3
これらの方法は、Object.keys()
メソッドや Object.values()
メソッドよりも処理速度が遅くなる可能性があります。
javascript object javascript-objects