Чтение вложенных объектов, JavaScript. (Дубликат)
Это из моего текущего курса Udacity. Я перепробовал несколько ответов, все, кажется, не удаются Я использовал точечную и скобочную нотацию. Даже пытался их перепутать. Пробовал к console.log() их. Пробовал какое-то время петлю. Я просмотрел несколько страниц здесь и на MDV, в которых говорится о нотации / скобках. Либо есть ошибка реестра, либо я все еще делаю что-то не так.
Я не ищу однозначного ответа, так как я ищу кого-то, чтобы "объяснить, как мне пять", что я делаю неправильно и как я могу сделать это правильно.
Чтение вложенных объектов Напишите выражение, которое выводит, как сказать привет на португальском языке:
const greetings = {
hello: [{
english: 'hi',
french: 'bonjour',
portuguese: 'oi'
}],
goodbye: [{
english: 'bye',
french: 'au revoir',
portuguese: 'tchau'
}]
};
greetings.hello.portuguese;
greetings['hello']['portuguese'];
greetings['hello'][2];
Это то, что я считаю правильным, хотя они не приняты.
2 ответа
У меня был такой:
const greetings = {
hello: {
english: 'hi',
french: 'bonjour',
portuguese: 'oi'
},
goodbye: {
english: 'bye',
french: 'au revoir',
portuguese: 'tchau'
}
};
Если вы выводите как предупреждение, console.log
, document.write
, независимо от того, как вы хотите сделать вывод:
alert(greetings.hello.portuguese);
console.log(greetings.hello.portuguese);
работал у меня.
Я думаю, что это ошибка udacity.
Вы забываете, что объект, который содержит свойство 'portuguese', находится внутри массива. Таким образом, вам нужно будет сначала получить доступ к массиву (в данном случае, к первому и единственному элементу массива), прежде чем вы сможете получить доступ к португальскому свойству объекта:
const greetings = {
hello: [{
english: 'hi',
french: 'bonjour',
portuguese: 'oi'
}],
goodbye: [{
english: 'bye',
french: 'au revoir',
portuguese: 'tchau'
}]
};
console.log(greetings.hello[0].portuguese); // hello
console.log(greetings.goodbye[0]['portuguese']); // goodbye
Теперь вы можете использовать точку / скобку для доступа к свойству
Ответ
greetings.hello.portuguese; привет ['привет']['португальский'];