Как я могу получить доступ к объекту JavaScript, у которого есть пробелы в ключе объекта?

У меня есть объект JavaScript, который выглядит примерно так:

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

Я могу легко получить доступ к свойствам cartoon используя myTextOptions.cartoon.comic или любой другой. Тем не менее, я не смог получить правильный синтаксис для доступа к kid. Я попробовал следующее без удачи:

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

Ответ 2

Свойства объектов JavaScript также могут быть доступны или установлены с помощью скобочной записи (более подробно см. Методы доступа к свойствам). Объекты иногда называют ассоциативными массивами, поскольку каждое свойство связано со строковым значением, которое можно использовать для доступа к нему. Так, например, вы можете получить доступ к свойствам объекта myCar следующим образом:

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

Подробнее читайте в разделе Работа с объектами JS.

Так что в вашем случае это myTextOptions['character names'].kid;

Ответ 3

Мы также можем сделать это путем -

myTextOptions[ 'character names' ]['kid'];

Это полезно, когда у нас есть последовательные ключи, которые состоят из пробела.

Ответ 4

В Google Chrome, если вы переходите к проверке элемента, а затем наводите указатель мыши на наборы данных файла json, каждый отдельный набор данных будет иметь всплывающую подсказку, показывающую его путь, и он также дает вам возможность скопировать путь в буфер обмена. Просто к вашему сведению.