Как я могу получить доступ к объекту JavaScript, у которого есть пробелы в ключе объекта? - PullRequest
95 голосов
/ 30 ноября 2011

У меня есть объект 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

Ответы [ 4 ]

198 голосов
/ 30 ноября 2011

Используйте ECMAscripts "скобка":

myTextOptions[ 'character names' ].kid;

Вы можете использовать эту запись в любом случае, чтение и запись.

Для получения дополнительной информации читайте здесь:

3 голосов
/ 21 марта 2017

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

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

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

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

2 голосов
/ 31 августа 2018

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

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

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

0 голосов
/ 15 июля 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...