Ich habe dieses Objekt:
var data = {"id": 1, "second": "abcd"};
Dies sind Werte aus einem Formular. Ich übergebe dies einer Funktion zur Überprüfung.
Wenn die obigen Eigenschaften existieren, können wir ihre Werte mit data["id"]
Und data["second"]
Erhalten, aber manchmal können die Eigenschaften basierend auf anderen Werten unterschiedlich sein.
Wie kann ich Werte von data
unabhängig von Eigenschaftsnamen abrufen?
Um auf die Eigenschaften eines Objekts zuzugreifen, ohne die Namen dieser Eigenschaften zu kennen, können Sie ein for ... in
loop:
for(key in data) {
if(data.hasOwnProperty(key)) {
var value = data[key];
//do something with value;
}
}
Wenn Sie dies in einer einzelnen Zeile tun möchten, versuchen Sie Folgendes:
Object.keys(a).map(function(key){return a[key]})
In ES2017 können Sie Object.values()
verwenden:
Object.values(data)
Zum Zeitpunkt des Schreibens ist der Support begrenzt (Firefox und Chrome).Alle gängigen Browser außer IE unterstützen dies jetzt.
In ES2015 können Sie Folgendes verwenden:
Object.keys(data).map(k => data[k])
Wenn du $
ist definiert, dann können Sie iterieren
var data={"id" : 1, "second" : "abcd"};
$.each(data, function() {
var key = Object.keys(this)[0];
var value = this[key];
//do something with value;
});
Sie können auf folgende Weise darauf zugreifen, wenn Sie die Werte von Schlüsseln kennen
data.id
oder
data["id"]
Es tut mir leid, dass Ihre abschließende Frage nicht so klar ist, aber Sie liegen von Anfang an falsch. Die variablen Daten sind ein Objekt kein Array
Der Zugriff auf die Attribute eines Objekts ist ziemlich einfach:
alert(data.second);
Wenn dies Ihre Frage jedoch nicht vollständig beantwortet, klären Sie sie bitte und senden Sie sie zurück.
Vielen Dank !
Mit lodash_.values(object)
_.values({"id": 1, "second": "abcd"})
[ 1, 'abcd' ]
lodash
enthält eine ganze Reihe weiterer Funktionen für die Arbeit mit Arrays, Objekten, Sammlungen, Zeichenfolgen und mehr, in die Sie möchten JavaScript (und scheinen tatsächlich langsam in die Sprache einzudringen).