web-dev-qa-db-fra.com

Javascript Obtenir la longueur de la liste des objets dans l'objet?

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.

4
user3802348

Vous pouvez obtenir les clés en utilisant Object.keys, qui renvoie un tableau des clés:

Exemple

var obj = {0: 8, 1: 9, 2: 10};

var keys = Object.keys(obj);

var len = keys.length
8
JordanHendrix

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)
6
dork

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>
3
TMB
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.!

1
sudhakar phad