我有一个朋友在数组上有作业,因为我缺乏Javascript经验,她只需要一些真正的快速帮助,了解如何实现Javascript loop to store data in an array which converts a letter grade to a number
。有人可以指导她向大方向发展吗?
更新:她说她在第一次存储数据后不知道如何再次提示。有人可以为do {}做一个C ++代码的翻译吗?
答案 0 :(得分:1)
这是一个或多或少完整的解决方案 - 但它不会将结果输出到HTML页面,而是通过警告框输出。
var done = false,
classes = [],
total_credits = 0,
avg = 0;
while(!done){
var class_name = prompt("Enter class name"),
letter_grade = prompt("Enter letter grade for "+class_name),
credit_hours = prompt("Enter credit hours for "+class_name),
number_grade = {"A":4,"B":3,"C":2,"D":1,"F":0}[letter_grade];
if(class_name && letter_grade && credit_hours){
classes.push({
class_name: class_name,
letter_grade: letter_grade,
number_grade: number_grade,
credit_hours: credit_hours
});
total_credits += parseInt(credit_hours,10);
avg += number_grade*credit_hours;
}else
done = true;
}
avg = avg/total_credits;
for(var i=0; i<classes.length; i++){
alert(classes[i].class_name + " | " +
classes[i].letter_grade + " | " +
classes[i].credit_hours);
}
alert("Total credits: " + total_credits);
alert("GPA: " + avg.toFixed(2));
答案 1 :(得分:0)
基本上,她应该使用while循环。
(主要)伪代码:
more_entries = true;
while(more_entries)
{
response = prompt("Question for the user","");
if (response == null)
{
more_entries = false;
}
else
{
// store value somewhere
}
}
当然,这需要扩展到多个提示。