J'ai un objet JavaScript qui ressemble à ceci:
var myTextOptions = {
'cartoon': {
comic: 'Calvin & Hobbes',
published: '1993'
},
'character names': {
kid: 'Calvin',
tiger: 'Hobbes'
}
}
Je peux accéder aux propriétés de l' cartoon
utilisation facile myTextOptions.cartoon.comic
ou autre. Cependant, je n'ai pas pu obtenir la syntaxe correcte pour accéder kid
. J'ai essayé ce qui suit sans succès:
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
la source
la source
Réponses:
Utilisez la «notation entre crochets» ECMAscripts:
Vous pouvez utiliser cette notation dans les deux sens, en lecture et en écriture.
Pour plus d'informations, lisez ici:
la source
myTextOptions.["character names"].kid
- pour compléter cette question, je me demandais pourquoi cela n'a pas fonctionné?dot notation
simultanément. Il ne doit y avoir qu'une seule directive d'accesseur.Les propriétés des objets JavaScript peuvent également être consultées ou définies à l'aide d'une notation entre crochets (pour plus de détails, voir les accesseurs de propriété ). Les objets sont parfois appelés tableaux associatifs car chaque propriété est associée à une valeur de chaîne qui peut être utilisée pour y accéder. Ainsi, par exemple, vous pouvez accéder aux propriétés de l'objet myCar comme suit:
Pour plus d'informations, lisez la rubrique Utilisation d'objets JS .
Donc dans votre cas c'est
myTextOptions['character names'].kid;
la source
Nous pouvons également le faire en -
myTextOptions[ 'character names' ]['kid']
;Ceci est utile lorsque nous avons des clés consécutives constituées d'espace.
la source
Permettez-moi de partager ma solution ici, j'utilise VueJs avec un script de type.
J'ai suivi json pour analyser et afficher dans l'interface utilisateur
J'ai créé le modèle suivant interférer dans Typescript
J'ai appelé l'API comme suit:
Utilisé dans JSX comme:
La même chose peut également fonctionner dans React et Angular.
la source
utiliser ce code
myTextOptions.["character names"]["kid"];
la source