1. ホーム
  2. javascript

[解決済み] JavaScriptのオブジェクトの属性を数えるにはどうしたらいいですか?[重複しています]

2022-04-21 15:59:19

質問

JavaScriptで以下のようなオブジェクトがあったとします。

var object = {
  "key1": "value1",
  "key2": "value2",
  "key3": "value3"
}; 

オブジェクトに存在する値の個数を調べるには?

どのように解決するのですか?

簡単な答えはありません。 Object - JavaScript のすべてのオブジェクトが由来するこのオブジェクトは、自動的に多くの属性を含んでおり、あなたが得る属性の正確なセットは、特定のインタプリタとあなたの前に実行されたコードに依存します。そのため、自分で定義したものと、タダでもらったものをどうにかして分けなければなりません。

ここに一つの方法があります。

var foo = {"key1": "value1", "key2": "value2", "key3": "value3"};
Object.prototype.foobie = 'bletch'; // add property to foo that won't be counted

var count = 0;
for (var k in foo) {
    if (foo.hasOwnProperty(k)) {
       ++count;
    }
}
alert("Found " + count + " properties specific to foo");

2行目は、他のコードがどのようにすべての Object 誘導体です。を削除すると hasOwnProperty() をループ内でチェックすると、プロパティの数は少なくとも4まで上がります。このコード以外に他のJavaScriptがあるページでは、その他のコードが Object プロトタイプを使用します。