To count the number of objects in object literal using Jquery

前端 未结 3 1666
旧巷少年郎
旧巷少年郎 2021-02-06 04:45

Code:

var animals = {
                    \"elephant\": {
                                    \"name\" : \"Bingo\",
                                    \"age\" :         


        
相关标签:
3条回答
  • 2021-02-06 05:26

    You could use Object.keys(animals).length

    Or

    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
    

    Or one of many jQuery solutions that may or may not be the most efficient:

    var count = $.map(animals, function(n, i) { return i; }).length;
    
    0 讨论(0)
  • 2021-02-06 05:28

    If you want something cross browser, that is also working on IE8, you can't do it in a really clean way (see compatibility of the keys property).

    I suggest this :

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

    (as it is an object literal, no need for hasOwnProperty)

    0 讨论(0)
  • 2021-02-06 05:42

    Can't you use an array?

    Anyway, in an object, you can do that:

    Object.prototype.length = function() {
        var count = 0, k=null;
        for (k in this) {
            if (this.hasOwnProperty(k)) count++;
        }
        return count;
    }
    console.log( animals.length() );
    
    0 讨论(0)
提交回复
热议问题