Mit dem in ECMAScript 6 eingebauten Reflect-Objekt können Sie die Eigenschaften eines Objekts einfach zählen:
Reflect.ownKeys(targetObject).length
Sie gibt Ihnen die Länge der eigenen Eigenschaften des Zielobjekts ( wichtig ).
Reflect.ownKeys(target)
Gibt ein Array der eigenen (nicht geerbten) Eigenschaften des Zielobjekts Schlüssel.
Was bedeutet das nun? Um das zu erklären, sehen wir uns dieses Beispiel an.
function Person(name, age){
this.name = name;
this.age = age;
}
Person.prototype.getIntro= function() {
return `${this.name} is ${this.age} years old!!`
}
let student = new Person('Anuj', 11);
console.log(Reflect.ownKeys(student).length) // 2
console.log(student.getIntro()) // Anuj is 11 years old!!
Wie Sie hier sehen können, werden nur die eigenen Eigenschaften zurückgegeben, während das Objekt die Eigenschaften noch von seinem Elternteil erbt.
Weitere Informationen finden Sie hier: Reflect-API
1 Stimmen
@neitony - das ist irgendwie wahr, aber so viele Leute sind an PHP's "assoziatives Array" gewöhnt, dass sie annehmen könnten, es bedeutet " bestellt assoziative Karte", wenn JS-Objekte in der Tat ungeordnet sind.
4 Stimmen
In dem obigen Beispiel ist myObject.length undefiniert, zumindest in einer Browserumgebung. Deshalb ist es ungültig, @AdrianM
3 Stimmen
Varianten von
Object.
{keys
,values
,entries
}(obj).length
wurden nun insgesamt 38 Mal in 16 Antworten und in den Kommentaren zu dieser Frage erwähnt, und weitere 11 Mal in 7 gelöschten Antworten. Ich denke, das ist jetzt genug.