2001 Stimmen

Wie man effizient die Anzahl der Schlüssel/Eigenschaften eines Objekts in JavaScript zählt

Wie kann man am schnellsten die Anzahl der Schlüssel/Eigenschaften eines Objekts zählen? Ist es möglich, dies zu tun, ohne über das Objekt zu iterieren? D.h., ohne zu tun:

var count = 0;
for (k in myobj) if (myobj.hasOwnProperty(k)) ++count;

(Firefox hat eine magische __count__ Eigenschaft, aber diese wurde irgendwann in Version 4 entfernt).

3voto

Fayaz Punkte 41

Sie können verwenden:

Object.keys(objectName).length; 

y

Object.values(objectName).length;

1voto

Robert Sinclair Punkte 3608

Der OP hat nicht angegeben, ob das Objekt eine nodeList ist. Wenn ja, dann kann man einfach die Länge Methode direkt auf sie anwenden. Beispiel:

buttons = document.querySelectorAll('[id=button)) {
console.log('Found ' + buttons.length + ' on the screen');

-2voto

codejoecode Punkte 67

Wenn jQuery in den vorherigen Antworten nicht funktioniert, dann versuchen Sie

$(Object.Item).length

-3voto

Taquatech Punkte 13

Ich versuche, sie allen Objekten wie diesem zur Verfügung zu stellen:

Object.defineProperty(Object.prototype,
                      "length",
                      {
                          get() {
                              if (!Object.keys) {
                                  Object.keys = function (obj) {
                                      var keys = [],k;
                                      for (k in obj) {
                                          if (Object.prototype.hasOwnProperty.call(obj, k)) {
                                              keys.push(k);
                                          }
                                      }
                                      return keys;
                                  };
                              }
                              return Object.keys(this).length;
                      },});

console.log({"Name":"Joe", "Age":26}.length) // Returns 2

-3voto

amix Punkte 131

Ich glaube nicht, dass dies möglich ist (zumindest nicht ohne die Verwendung einiger Interna). Und ich glaube nicht, dass Sie viel durch die Optimierung dieser gewinnen würde.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X