Access Map über die Variablen-Namen in Pfadnamen
Ich habe ein map-Objekt mit einer Liste von Daten über Menschen. Jede person ist einzigartig. Die Datenfelder der einzelnen person enthält möglicherweise nicht die gleiche Art von Informationen (dh - Joey ein Datumsfeld enthält, aber Jill nicht).
Frage ich mich, wenn ich Zugriff auf einen bestimmten Teil der map mit einer Variablen-Namen als Teil der Karte Weg. Betrachten Sie das folgende:
var data = {
'Joey': {
'id': '912',
'date': 'May 14 2012',
},
'Jill': {
'id': '231',
'login': 'JillM',
}
}
var name="Joey";
var joeyDate = data. + name + .date; //This does not work. Is there an alternative?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie die folgende syntax:
Dies ist eine alternative zu
data.Joey
, die sollten auch funktionieren, aber ist statisch.Können Sie auch verwenden:
Der Unterschied ist genau das, was sind Sie fragend über -
[]
notation ist besser für dynamisches retrieval und möglicherweise ungültige Schlüssel nicht erlaubt wäre, mit Javascript, wenn über die Punkt-notation. Zum Beispiel, wenn Sie einen Schlüssel hatten "Termin-geborene", die Sie nicht verwenden könnendata[name].date-born
, aber Sie könnendata[name]["date-born"]
.Ein Beispiel HIERFÜR ist:
Aber natürlich
date
muss eine Eigenschaft sein (wo es nicht für "Jill"), ansonstenundefined
zurückgegeben werden.Einen alternativen Weg:
mapName.get(keyName).propertyName
In Ihrem Fall:
data.get(name).date