Hvordan kan jeg få tilgang til et JavaScript-objekt som har mellomrom i objektets nøkkel?


Jeg har et JavaScript-objekt som ser omtrent slik ut:

var myTextOptions = {
  'cartoon': {
     comic: 'Calvin & Hobbes',
     published: '1993'
  },
  'character names': {
    kid: 'Calvin',
    tiger: 'Hobbes'
  }
}

Jeg kan enkelt få tilgang til egenskapene til cartoon ved å bruke myTextOptions.cartoon.comic eller hva som helst. Imidlertid har jeg ikke klart å få syntaksen riktig for å få tilgang til kid. Jeg har prøvd følgende uten hell:

myTextOptions.character names.kid
myTextOptions."character names".kid
myTextOptions.character\ names.kid
myTextOptions.'character names'.kid
myTextOptions.["character names"].kid
myTextOptions.character%20names.kid

Svar #1

Bruk ECMAscript sin «bracket notation»:

myTextOptions[ 'character names' ].kid;

Du kan bruke den notasjonen begge veier, både for lesing og skriving.

For mer informasjon, les her: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects

Svar #2

Egenskaper til JavaScript-objekter kan også nås eller settes ved bruk av hakeparentesnotasjon (for flere detaljer, se egenskapstilgangsmetoder). Objekter kalles noen ganger assosiative matriser siden hver egenskap er knyttet til en strengverdi som kan brukes for å få tilgang til den. Så, for eksempel, kunne du få tilgang til egenskapene til myCar-objektet som følger:

myCar['make'] = 'Ford';
myCar['model'] = 'Mustang';
myCar['year'] = 1969;

For mer, les videre på Working with JS Objects.

Så i ditt tilfelle er det myTextOptions['character names'].kid;

Relaterte artikler