JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptでオブジェクトのサイズ(プロパティ数)を取得する方法

JavaScriptでは、配列の要素数は length プロパティで簡単に取得できますが、オブジェクトには標準で length プロパティが存在しません。そのため、オブジェクトに含まれるプロパティの数(サイズ)を知りたい場合は、独自の処理を実装する必要があります。

対象となるオブジェクトの例

たとえば、次のようなオブジェクトを考えてみましょう。

const obj = {
    name: "Ramesh",
    age: 34,
    occupation: "HR Manager",
    address: "Tilak Nagar, New Delhi",
    experience: 13
};

このオブジェクトには5つのプロパティが含まれています。ここから、オブジェクトのサイズ(プロパティの総数)を計算する関数を作成していきます。

実装方法:for...in ループと hasOwnProperty を使う

オブジェクトのサイズを求める基本的なアプローチは、for...in ループですべてのキーを走査し、hasOwnProperty() でそのキーがオブジェクト自身のプロパティであるかを確認することです。これにより、プロトタイプチェーンから継承されたプロパティを除外できます。

コード例

const obj = {
    name: "Ramesh",
    age: 34,
    occupation: "HR Manager",
    address: "Tilak Nagar, New Delhi",
    experience: 13
};

Object.prototype.size = function(obj) {
    let size = 0, key;
    for (key in obj) {
        if (obj.hasOwnProperty(key)) {
            size++;
        }
    }
    return size;
};

const size = Object.size(obj);
console.log(size);

実行結果

このコードをコンソールで実行すると、次の出力が得られます。

5

よりモダンな代替手段:Object.keys() を使う

近年のJavaScriptでは、Object.keys() メソッドを使うのが最もシンプルで推奨される方法です。Object.keys(obj).length と書くだけで、オブジェクト自身の列挙可能なプロパティの数を1行で取得できます。

const size = Object.keys(obj).length;
console.log(size); // 5

同様に、Object.values(obj).lengthObject.entries(obj).length でも同じ結果が得られます。用途に応じてこれらのメソッドを使い分けると、コードがより簡潔で読みやすくなります。

  1. JavaScriptでオブジェクトのプロパティを削除する方法をわかりやすく解説

    JavaScriptでオブジェクトのプロパティを削除するには、delete演算子を使用します。delete演算子は、指定したオブジェクトからプロパティそのものを取り除き、削除に成功した場合はtrueを返します。以下に、オブジェクトのプロパティを削除するサンプルコードを示します。サンプルコード<!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, initial-scale=1.0

  2. JavaScriptのImage()オブジェクトとは?使い方とサンプルコードを解説

    JavaScriptにおけるImage()オブジェクトは、HTMLの<img>要素を表すオブジェクトです。このオブジェクトを使うことで、JavaScriptから動的に画像を生成し、Webページに追加することができます。Image()コンストラクタには、引数として画像の幅と高さをピクセル単位で指定できます。また、生成した画像オブジェクトのsrcプロパティに画像のURLを設定することで、画像を読み込むことが可能です。Image()オブジェクトの基本的な使い方以下は、JavaScriptでImage()オブジェクトを使用するサンプルコードです。コード例<!DOCTYPE html&