JavaScript循环将数据存储在数组中

时间:2010-07-11 06:55:14

标签: javascript arrays loops

我有一个朋友在数组上有作业,因为我缺乏Javascript经验,她只需要一些真正的快速帮助,了解如何实现Javascript loop to store data in an array which converts a letter grade to a number。有人可以指导她向大方向发展吗?

https://docs.google.com/fileview?id=16uNNiooLalkm1QlszrqEPr2qqMGLjhrtQx7qCLw-7d2ftygre8GM6hyceJHj&hl=en \

更新:她说她在第一次存储数据后不知道如何再次提示。有人可以为do {}做一个C ++代码的翻译吗?

2 个答案:

答案 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
    }    
}

当然,这需要扩展到多个提示。