JavaScript - Nombre d'éléments d'un objet

Existe-t-il un moyen d’obtenir le nombre d’éléments dans un objet Javascript?

Je ne trouve pas de propriété ou de méthode permettant de récupérer le nombre d’éléments dans un objet. Jusqu’à présent, je ne peux que penser à faire une itération à travers la collection entière, mais c’est un temps linéaire.

C’est bizarre qu’il n’y ait pas d’accès direct à la taille de l’objet.

Pour les scripts multi-navigateurs, vous êtes obligé d’itérer explicitement sur les propriétés et de vérifier hasOwnProperty() :

Voici un exemple:

function countProperties(obj) {
    var count = 0;

    for(var prop in obj) {
        if(obj.hasOwnProperty(prop))
            ++count;
    }

    return count;
}

var obj = {a: 1, b: 2, c: 3};
console.log(countProperties(obj));   // 3

Dans le cas des versions compatibles avec ECMAScript 5, cela peut également être écrit comme suit

function countProperties(obj) {
    return Object.keys(obj).length;
}

var obj = {a: 1, b: 2, c: 3};
console.log(countProperties(obj));   // 3

Il suffit d’utiliser la ligne code suivant afin de récupérer le nombre d’éléments dans un objet

Object.keys(obj).length

Si vous utilisez déjà jQuery dans votre application, faites simplement ceci :

$(tonObjet).length