1. ホーム
  2. ジャバスクリプト

[解決済み】オブジェクトの長さを取得する方法【重複あり

2022-03-27 22:48:41

質問

オブジェクトの長さを返すことができる組み込み関数はありますか?

例えば、私は a = { 'a':1,'b':2,'c':3 } を返すべきところ 3 . もし私が a.length を返します。 undefined .

単純なループ関数でもいいのですが、組み込みの関数があれば知りたいのですが?

関連する質問があります( JSONオブジェクトの長さ ) - 選択された回答では、ユーザーはオブジェクトを配列に変換することを助言していますが、これは私のタスクにとってかなり快適ではありません。

解決方法は?

をサポートするブラウザの場合 オブジェクト.キー() を実行すればよい。

Object.keys(a).length;

そうでない場合 (特に IE < 9 の場合)、オブジェクトをループするために for (x in y) ループを使用します。

var count = 0;
var i;

for (i in a) {
    if (a.hasOwnProperty(i)) {
        count++;
    }
}

hasOwnProperty は、オブジェクト・リテラルのプロパティのみをカウントし、そのプロトタイプから "継承するプロパティはカウントしないことを確認するために存在します。