Ich habe ein JavaScript-Objekt wie
var obj = {
key1: 'value1',
key2: 'value2',
key3: 'value3',
key4: 'value4'
}
Wie kann ich die Länge und Liste der Schlüssel in diesem Objekt ermitteln?
javascript
user160820
quelle
quelle
Antworten:
quelle
keys
.Object.prototype
, was Sie sowieso nicht tun sollten. Für benutzerdefinierte Konstruktoren haben Sie jedoch Recht.[]
(oderarray()
damals) wird es zu einem Array, das Sie dann sicher als Array verwenden können.Es unterstützt jetzt auf den meisten gängigen Browsern.
quelle
for(key in ob)
!Object.keys
listet die Schlüssel von Prototypen nicht auf,.. in obj
tut es aber .Underscore.js macht die Transformation ziemlich sauber:
Edit: Ich habe vermisst, dass du das auch kannst:
quelle
Wenn Sie nur die Schlüssel möchten, die für dieses bestimmte Objekt spezifisch sind, und keine abgeleiteten
prototype
Eigenschaften:z.B:
quelle
Um auf einen beliebigen Wert des Objekts zuzugreifen, können Sie obj [Schlüssel] verwenden.
quelle
keys.length
, was für jede Iteration unterschiedlich ist, da jede Iteration einen Wert einfügt.Du kannst es versuchen:
dies wird zurückkehren:
um die Liste der Schlüssel zu erhalten oder
um die Werte zu erhalten
quelle
Anurags Antwort ist grundsätzlich richtig. Zur Unterstützung auch
Object.keys(obj)
in älteren Browsern können Sie den folgenden Code verwenden, der von https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys kopiert wurde . Es fügt dieObject.keys(obj)
Methode hinzu , wenn sie nicht im Browser verfügbar ist.quelle
Beachten Sie, dass dies in Coffeescript in allen Browsern und Knoten als möglich ist
und somit
quelle
Rekursive Lösung für Browser, die ECMAScript 5 unterstützen:
quelle
quelle
Verwenden
Object.keys()
... es ist der richtige Weg.Die vollständige Dokumentation finden Sie auf der unten verlinkten MDN-Website:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
quelle
Wenn Sie sich für Underscore.js entscheiden, sollten Sie dies besser tun
quelle
In JavaScript ist ein Objekt eine eigenständige Entität mit Eigenschaften und Typ.
Zum Abrufen von Werten aus dem Objekt in Form eines Arrays: Object .values (obj) // obj ist der Objektname, den Sie verwendet haben. Ergebnis -> ["Wert1", "Wert2", "Wert3", "Wert4"]
Zum Abrufen von Schlüsseln von Object in Form eines Arrays: Object .keys (obj) // obj ist der Objektname, den Sie verwendet haben. Ergebnis -> ["key1", "key2", "key3", "key4"]
Da beide Funktionen ein Array zurückgeben, können Sie die Länge der Schlüssel oder des Werts mithilfe der Eigenschaft length ermitteln. Zum Beispiel - Objekt .Werte (obj) .Länge oder Objektschlüssel (obj) .Länge
quelle
Versuchen Sie Folgendes, um eine durch Kommas getrennte Zeichenfolge mit den Schlüsseln eines JSON-Objekts aufzulisten:
quelle
Mit ES6 können Sie
forEach
die Schlüssel eines Objekts durchlaufen. Um alle Schlüssel zu erhalten, können SieObject.keys
alle Schlüssel in einem Objekt zurückgebenKurze Hand des obigen Snippets wäre, die nur einen Parameter akzeptiert
quelle
quelle
Mit Slice anwenden und verbinden.
quelle