Also, die Anzahl der Schlüssel.
function objectSize(the_object) {
/* function to validate the existence of each key in the object to get the number of valid keys. */
var object_size = 0;
for (key in the_object){
if (the_object.hasOwnProperty(key)) {
object_size++;
}
}
return object_size;
}
Verwendung
// Arbitrary object
var something = {
dog: "cat",
cat: "dog"
}
console.log(objectSize(something));
// Logs: 2
Stellen Sie sicher, dass Sie var vor key in Ihrer Schleife hinzufügen
for (var key in the_object){damit die Variable key mit der Funktion aus dem Gültigkeitsbereich ausscheidet.
Ich bin gerade auf diesen Beitrag gestoßen, während ich Code für IE debugge. IE-Versionen vor 9 scheinen ein Problem mit Object.keys und .hasOwnProperty zu haben, die direkt auf einem Objekt verwendet werden. Daher ist ein ausgefeilterer Ersatz notwendig, der hier gefunden werden kann
http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation
Ich hoffe, das hilft.
Das gefällt mir, Chris, aber es scheint korrekter zu sein, es dem Object-Prototyp hinzuzufügen. IE
Object.prototype.size = function() {var size = 0
// Ihr Code, aber mit "this"
return size;
}
Aufgerufen mit something.size()
Nach meinem Verständnis sollte das Hinzufügen einer neuen Funktion zum Objektprototyp kein Problem darstellen.
Hey Sam, könntest du deinen Vorschlag aufschreiben? Ich bin etwas verwirrt davon.
Danke für die Hilfe.