请注意,我今天早上才学会了如何使用物品,所以这主要是为了解决这个问题。
我能够设置一个包含学生列表的数组。每个学生都是具有多个属性的对象。我还能够使用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);
答案 0 :(得分:1)
在
var selectedStudent = prompt("Which student do you want to see the results for Test #1?");
selectedStudent
是在提示符处输入的字符串。它没有name
或test1
属性。
如果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");
}