Ich habe ein JavaScript-Objekt, das ungefähr so aussieht:
var myTextOptions = {
'cartoon': {
comic: 'Calvin & Hobbes',
published: '1993'
},
'character names': {
kid: 'Calvin',
tiger: 'Hobbes'
}
}
Ich kann auf die Eigenschaften der cartoon
einfachen Verwendung myTextOptions.cartoon.comic
oder was auch immer zugreifen . Ich konnte jedoch nicht die richtige Syntax für den Zugriff finden kid
. Ich habe Folgendes ohne Glück versucht:
myTextOptions.character names.kid
myTextOptions."character names".kid
myTextOptions.character\ names.kid
myTextOptions.'character names'.kid
myTextOptions.["character names"].kid
myTextOptions.character%20names.kid
javascript
object
julio
quelle
quelle
Antworten:
Verwenden Sie ECMAscripts "Klammer-Notation":
Sie können diese Notation so oder so verwenden, lesen und schreiben.
Weitere Informationen finden Sie hier:
quelle
myTextOptions.["character names"].kid
- der Vollständigkeit halber habe ich mich gefragt, warum das nicht funktioniert hat?dot notation
gleichzeitig benutzt hat. Es darf nur eine Accessor-Direktive geben.Auf Eigenschaften von JavaScript-Objekten kann auch mit einer Klammer-Notation zugegriffen oder festgelegt werden (weitere Informationen finden Sie unter Eigenschaften-Accessoren ). Objekte werden manchmal als assoziative Arrays bezeichnet, da jeder Eigenschaft ein Zeichenfolgenwert zugeordnet ist, mit dem auf sie zugegriffen werden kann. So können Sie beispielsweise wie folgt auf die Eigenschaften des myCar-Objekts zugreifen:
Weitere Informationen finden Sie unter Arbeiten mit JS-Objekten .
Also in deinem Fall ist es
myTextOptions['character names'].kid;
quelle
Wir können dies auch tun, indem wir -
myTextOptions[ 'character names' ]['kid']
;;Dies ist nützlich, wenn wir aufeinanderfolgende Schlüssel haben, die aus Leerzeichen bestehen.
quelle
Lassen Sie mich hier meine Lösung teilen. Ich verwende VueJs mit Typenskript.
Ich habe json gefolgt, um es zu analysieren und in der Benutzeroberfläche anzuzeigen
Ich habe das folgende Modell Interferenz in Typescript erstellt
Ich habe die API wie folgt aufgerufen:
Wird in JSX verwendet wie:
Gleiches kann auch in React und Angular funktionieren.
quelle
Verwenden Sie diesen Code
myTextOptions.["character names"]["kid"];
quelle