У меня есть объект JavaScript, который выглядит примерно так:
var myTextOptions = {
'cartoon': {
comic: 'Calvin & Hobbes',
published: '1993'
},
'character names': {
kid: 'Calvin',
tiger: 'Hobbes'
}
}
Я могу получить доступ к свойствам cartoon
easy using 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
javascript
object
Julio
источник
источник
Ответы:
Используйте "обозначение скобок" ECMAscripts:
Вы можете использовать эту нотацию как для чтения, так и для письма.
Подробнее читайте здесь:
источник
myTextOptions.["character names"].kid
- для полноты этого вопроса мне было интересно, почему это не сработало?dot notation
. Должна быть только одна директива аксессора.К свойствам объектов JavaScript также можно получить доступ или задать их с помощью скобок (подробнее см. Аксессоры свойств ). Объекты иногда называют ассоциативными массивами, поскольку каждое свойство связано со строковым значением, которое может использоваться для доступа к нему. Так, например, вы можете получить доступ к свойствам объекта myCar следующим образом:
Подробнее читайте в разделе Работа с объектами JS .
Так что в вашем случае это
myTextOptions['character names'].kid;
источник
Мы также можем сделать это:
myTextOptions[ 'character names' ]['kid']
;Это полезно, когда у нас есть последовательные ключи, состоящие из пробелов.
источник
Позвольте мне поделиться своим решением здесь. Я использую VueJ с типом script.
Я получил следующий json для анализа и отображения в пользовательском интерфейсе
Я создал следующую модель вмешательства в Typescript
Я назвал API так:
Используется в JSX как:
То же самое может работать в React и Angular.
источник
используйте этот код
myTextOptions.["character names"]["kid"];
источник