9

コード:

var animals = {
                    "elephant": {
                                    "name" : "Bingo",
                                    "age" : "4"
                                },
                    "Lion":     {
                                    "name" : "Tango",
                                    "age" : "8"
                                },
                    "Tiger":    {
                                    "name" : "Zango",
                                    "age" : "7"
                                }
                }

このオブジェクトリテラルでJqueryを使ってオブジェクトの数をカウントしたいです。

4

3 に答える 3

22

あなたが使用することができますObject.keys(animals).length

または

var count = 0;
for (var animal in animals) {
    if (animals.hasOwnProperty(animal)) {
        count++;
    }
}
// `count` now holds the number of object literals in the `animals` variable

または、最も効率的である場合とそうでない場合がある多くの jQuery ソリューションの 1 つ:

var count = $.map(animals, function(n, i) { return i; }).length;
于 2012-12-10T14:33:34.730 に答える
1

IE8 でも動作するクロス ブラウザーが必要な場合は、本当にきれいな方法では実行できません (キー プロパティの互換性を参照してください)。

私はこれを提案します:

var n = 0;
for (var _ in animals) n++;

(オブジェクトリテラルであるため、hasOwnProperty は必要ありません)

于 2012-12-10T14:35:55.770 に答える
-1

配列は使えませんか?

とにかく、オブジェクトでは、次のことができます。

Object.prototype.length = function() {
    var count = 0, k=null;
    for (k in this) {
        if (this.hasOwnProperty(k)) count++;
    }
    return count;
}
console.log( animals.length() );
于 2012-12-10T14:41:03.013 に答える