尝试在Javascript中使用循环和点表示法列出项目

时间:2016-10-19 10:09:37

标签: javascript loops

所以我正在尝试解决这段代码。它在控制台中打印,现在我试图让它在循环中运行并列出每个人及其细节,同时还使用点表示法。我尝试了各种不同的选择,并搜索网络。我是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 个答案:

答案 0 :(得分:1)

你需要在你的循环中使用括号表示法,你需要使用字符串键(prop),并且你需要点符号和文字在你正在写字面的地方(student[i].course)或者如果要在那里使用括号表示法,则需要将名称放在引号(student[i]["course"])中。当您执行student[i][course]时,您正在说&#34;查找course变量的值并将其用作属性名称,&#34;但是那时你不能在范围内有任何course变量。

使用点表示法(并将内容传递给print):

&#13;
&#13;
// 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);
}
&#13;
&#13;
&#13;

旁注:单词&#34;参加 a nce&#34;最后有一个a,而不是e