#javascript #object
#javascript #объект
Вопрос:
Когда у вас есть многоуровневый объект, подобный объекту json, который, скажем, имеет 3 уровня
i = {'id':1{'name':'austin', 'lives':'college'{'name':'eckerd', 'major':'compsci'}}}
Чтобы ссылаться на объект, лучше ли ссылаться на него следующим образом
for (x in i)
i[x]['lives']['name']
//or
i[x].lives.name
Я думаю, это проясняет мою идею. В значительной степени используются ассоциативные массивы или метод ‘dot’ и почему?
Ответ №1:
i[x].lives.name
эквивалентно i[x]["lives"]["name"]
.
i[x][lives][name]
означает, что у вас есть вызываемые переменные, lives
на name
которые вы хотите ссылаться:
Нет никакой реальной выгоды в использовании одной формы вместо другой; имхо, проще всего использовать точечную нотацию, если вам не нужны имена свойств переменных.
Комментарии:
1. ошибка, извините, в вопросе они должны быть в кавычках
2. На самом деле это просто то, что вы предпочитаете. Два синтаксических представления ссылаются на одни и те же объекты совершенно одинаковым образом. Выбранный вами метод не окажет никакого влияния на ваш код, кроме того, как он выглядит. Лично я использую . синтаксис для отделения стандартных «объектов» от того, что я считаю «массивами», хотя для JS это в точности одно и то же.
3. @austinbv выглядит неплохо. Думаю, тогда актуальна только последняя строка этого ответа. 🙂
4. Я испытываю соблазн отклонить это, поскольку к ключам JSON (которые являются строками) следует обращаться соответственно только как к строкам, а не к параметрам объекта.
Ответ №2:
«Значения могут быть извлечены из объекта путем обертывания строкового выражения в суффикс [ ]. Если строковое выражение является строковым литералом, и если это законное имя JavaScript, а не зарезервированное слово, то . вместо этого можно использовать нотацию. The . предпочтительна нотация, поскольку она более компактна и лучше читается.»
- Крокфорд Д. (2008), JavaScript: хорошие стороны. (стр. 21). Севастополь, Калифорния, США: О’Рейли.