J'ai actuellement un objet Javascript qui ressemble à ceci:
Object {0: 8, 1: 9, 2: 10}
J'essaie d'obtenir le nombre d'éléments individuels dans l'objet (c'est-à-dire 3), mais je ne vois pas comment faire. Puisque l'objet n'est pas un tableau, je ne peux pas simplement appeler .length()
. J'ai essayé huntsList[2].toString().split('.').length
de scinder les éléments entre les virgules et de les compter de cette façon, mais renvoie 1, puisqu'il convertit l'objet entier en une chaîne unique ressemblant à ceci: ["[object Object]"]
.
Toutes les suggestions sur la façon dont je peux accomplir cela sont appréciées.
Vous pouvez obtenir les clés en utilisant Object.keys
, qui renvoie un tableau des clés:
var obj = {0: 8, 1: 9, 2: 10};
var keys = Object.keys(obj);
var len = keys.length
Vous pouvez utiliser Object.keys()
. Il retourne un tableau des clés d'un objet.
var myObject = {0: 8, 1: 9, 2: 10};
console.log(Object.keys(myObject).length)
1: utilisation de la solution ES5.1 Object.keys - retourne un tableau des propriétés énumérables propres à un objet donné
var obj = {
0: 8,
1: 9,
2: 10
}
console.log(Object.keys(obj).length)
2: Solution Pre-ES5: utiliser pour..in et hasOwn
var obj = {
0: 8,
1: 9,
2: 10
};
var propsLength = 0;
for (prop in obj) {
if (obj.hasOwnProperty(prop)) {
propsLength = propsLength + 1;
}
}
console.log(propsLength);
3: Solution de bibliothèque: Utilisez lodash/underscore Convertissez-le en un tableau et interrogez-en la longueur. Si vous avez besoin d'une solution JS pure, nous pouvons examiner le fonctionnement de toArray.
console.log(_.toArray({
0: 8,
1: 9,
2: 10
}).length)
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore.js"></script>
var obj = {0: 8, 1: 9, 2: 10};
alert(Object.keys(obj).length);
avec ce code, essayez d’alerter la longueur de votre objet mate.!