尝试在函数

时间:2015-11-13 19:32:08

标签: javascript arrays variables object

请注意,我今天早上才学会了如何使用物品,所以这主要是为了解决这个问题。

我能够设置一个包含学生列表的数组。每个学生都是具有多个属性的对象。我还能够使用for循环为数组中的每个对象添加另一个属性和值。

我现在要做的是提示用户输入对象名称“student1,student2等”我正在尝试使用该提示的值,保存为var studentSelected,在函数reportStudentInfo(info)中。

什么工作:如果我摆脱变量“selectedStudent”,我特意决定放入一个对象值student1,student2等,它按预期工作。

我不明白: 我猜测提示符的值会从提示符更改为字符串,并且它似乎搞乱了对象的值,即使提示输入可能是:“student1”,该函数不会将其作为student1读取。它为每个对象属性值返回一个未定义的值。

我真的希望我提出一个明确的问题。谢谢你的帮助。

  • 洛根

链接到JSFiddle:https://jsfiddle.net/lwood3499/aevsbrk8/

var selectedStudent = prompt("Which student do you want to see the results for Test #1?");

reportStudentInfo(selectedStudent.name +“:”+ selectedStudent.test1);

1 个答案:

答案 0 :(得分:1)

var selectedStudent = prompt("Which student do you want to see the results for Test #1?");

selectedStudent是在提示符处输入的字符串。它没有nametest1属性。

如果selectedStudent对象已存在,则可以执行

var selectedStudent.name = prompt("Which student do you want to see the results for Test #1?");

var studentName = prompt("Which student do you want to see the results for Test #1?");

更新

var selectedStudent = prompt("Which student do you want to see the results for Test #1?");
var found = null;
for (var iter = 0; iter < list.length; iter++) {
  if (selectedStudent == list[iter].name) {
    found = list[iter];
    break;
  }
}
if (found) {
  reportStudentInfo(found.name + " : " + found.test1 );
} else {
  alert(selectedStudent + " not found");
}