#javascript #loops
#javascript #циклы
Вопрос:
Итак, я пытаюсь проработать этот фрагмент кода. Он печатается в консоли, и теперь я пытаюсь заставить его проходить через цикл и перечислять каждого пользователя и их данные, также используя точечную нотацию. Я пробовал разные варианты и просматривал веб. Я новичок в Javascript, и, возможно, поэтому я пропустил что-то довольно очевидное. Кто-нибудь может помочь, пожалуйста?
// jslint devel: true
var student = [
{
name : 'Peter',
course : 'Creative Technologies',
module : 3,
attendence: 79
},
{
name : 'John',
course : 'Art',
module : 2,
attendence : 41
},
{
name : 'Hannah',
course : 'Business',
module : 4,
attendence : 78
},
{
name : 'Greg',
course : 'ICT',
module : 3,
attendence : 93
},
{
name : 'Sam',
course : 'Music',
module : 1,
attendence : 67
},
];
for (prop in student) {
console.log(prop, ': ', student[prop]);
}
function print(message){
document.write(message);
}
for (var i = 0; i < student.length; i ) {
name = student[i][name];
course = student[i][course];
module = student[i][module];
attendence = student[i][attendence];
print();
}
Комментарии:
1. Вы вызываете print(), но вы ничего не передаете ему, но он ожидает сообщение
2. Также вы не можете получить доступ к подобным свойствам,
student[i][name]
посколькуname
они не определены. Возможно, вы имели в виду это?student[i]["name"]
? И в качестве совета не используйтеdocument.write.
3. Спасибо за вашу помощь, мужчины, цените это!
Ответ №1:
Вам нужна нотация в скобках в вашем цикле, где вы используете строковый ключ ( prop
), и вы хотите либо точечную нотацию, либо литерал в тех местах, где вы пишете имя буквально ( student[i].course
), либо, если вы хотите использовать там нотацию в скобках, вам нужно заключить имя в кавычки ( student[i]["course"]
). Когда вы это делаете student[i][course]
, вы говорите «Найдите значение course
переменной и используйте его в качестве имени свойства», но на данный момент у вас нет никакой course
переменной в области видимости.
С точечной нотацией (и передачей чего-либо print
):
// jslint devel: true
var student = [
{
name : 'Peter',
course : 'Creative Technologies',
module : 3,
attendence: 79
},
{
name : 'John',
course : 'Art',
module : 2,
attendence : 41
},
{
name : 'Hannah',
course : 'Business',
module : 4,
attendence : 78
},
{
name : 'Greg',
course : 'ICT',
module : 3,
attendence : 93
},
{
name : 'Sam',
course : 'Music',
module : 1,
attendence : 67
},
];
/* Leaving this out to keep the output simple
for (prop in student) {
console.log(prop, ': ', student[prop]);
}
*/
function print(message){
console.log(message);
}
for (var i = 0; i < student.length; i ) {
var name = student[i].name; // ***
var course = student[i].course; // ***
var module = student[i].module; // ***
var attendence = student[i].attendence; // ***
print("Student #" i ":");
print(" name : " name);
print(" course : " course);
print(" module : " module);
print(" attendence: " attendence);
}
Примечание: слово «посещатьnce» имеет a
в конце, а не e
.
Комментарии:
1. Ти Джей, спасибо за вашу помощь — теперь я разобрался!
![]()