Zur Iteration von Avi Flax' Antwort , Object.keys(obj).length ist korrekt für ein Objekt, das keine Funktionen an sich gebunden hat.
Beispiel:
obj = {"lol": "what", owo: "pfft"};
Object.keys(obj).length; // should be 2
gegen
arr = [];
obj = {"lol": "what", owo: "pfft"};
obj.omg = function(){
_.each(obj, function(a){
arr.push(a);
});
};
Object.keys(obj).length; // should be 3 because it looks like this
/* obj === {"lol": "what", owo: "pfft", omg: function(){_.each(obj, function(a){arr.push(a);});}} */
Schritte, um dies zu vermeiden:
-
Fügen Sie keine Funktionen in ein Objekt ein, in dem Sie die Anzahl der Schlüssel zählen wollen
-
ein separates Objekt verwenden oder ein neues Objekt speziell für Funktionen erstellen (wenn Sie zählen wollen, wie viele Funktionen in der Datei vorhanden sind, indem Sie Object.keys(obj).length
)
Und ja, ich habe die _
o Underscore.js Modul von Node.js in meinem Beispiel.
Die Dokumentation ist zu finden unter aquí sowie den Quellcode auf GitHub und verschiedene andere Informationen.
Und schließlich eine Lodash-Implementierung https://lodash.com/docs#size
_.size(obj)