Supposons que l'objet suivant soit en JavaScript:
var object = {
"key1": "value1",
"key2": "value2",
"key3": "value3"
};
Comment savoir combien de valeurs existent dans l'objet?
Supposons que l'objet suivant soit en JavaScript:
var object = {
"key1": "value1",
"key2": "value2",
"key3": "value3"
};
Comment savoir combien de valeurs existent dans l'objet?
Il n'y a pas de réponse simple, car Object
— dont chaque objet en JavaScript provient — comprend de nombreux attributs automatiquement, et l'ensemble exact des attributs que vous obtenez dépend de l'interprète et ce code est exécuté avant le vôtre. Donc, vous avez en quelque sorte à séparer celles que vous avez défini de ceux que vous avez eu "gratuitement".
Voici un moyen:
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");
La deuxième ligne indique la façon dont les autres code pouvez ajouter des propriétés à tous Object
de produits dérivés. Si vous supprimez l' hasOwnProperty()
vérifiez à l'intérieur de la boucle, la propriété compter jusqu'à au moins 4. Sur une page avec du JavaScript en plus de ce code, il pourrait être supérieur à 4, si ce code modifie également l' Object
prototype.
Utilisez la bibliothèque de soulignement , très utile: _.keys(obj).length
.
var miobj = [
{"padreid":"0", "sw":"0", "dtip":"UNO", "datos":[]},
{"padreid":"1", "sw":"0", "dtip":"DOS", "datos":[]}
];
alert(miobj.length) //=== 2
mais
alert(miobj[0].length) //=== undefined
cette fonction est très bonne
Object.prototype.count = function () {
var count = 0;
for(var prop in this) {
if(this.hasOwnProperty(prop))
count = count + 1;
}
return count;
}
alert(miobj.count()) // === 2
alert(miobj[0].count()) // === 4
Vous pouvez parcourir l'objet pour obtenir les clés ou les valeurs:
function numKeys(obj)
{
var count = 0;
for(var prop in obj)
{
count++;
}
return count;
}
Cela ressemble à une "faute d'orthographe", mais je veux juste souligner que votre exemple est la syntaxe non valide, devrait être
var object = {"key1":"value1","key2":"value2","key3":"value3"};
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.