【问题标题】:JavaScript loops to store data in an arrayJavaScript 循环将数据存储在数组中
【发布时间】:2010-07-11 06:55:14
【问题描述】:

我有一个朋友有一个数组任务,因为我缺乏 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++ 代码的翻译吗?

【问题讨论】:

  • 嗯,她必须更具体地说明她被困在哪里。如果您只是链接到作业文档,您将不会在这里找到太多帮助。
  • 嗯,多么模糊的任务。他们有没有提到他们希望你如何从用户那里获得输入?
  • 也许这只是 CS 的一般作业,但是使用 Javascript 作为语言,Javascript 作为通用编程语言变得非常大。
  • @Faisal 实际上,在这件事上并不含糊。这简直太不现实了。它声明使用 JavaScript 提示符。 =/也就是说,这是一项家庭作业。对于课堂上的这一点来说,以“正确”的方式来做这件事可能太先进了。
  • Sheesh,我希望我不会被否决。我真的在这里尽我所能。好吧,有人可以简单地告诉她如何实现链接列表,然后接收输入,然后将成绩转换为数字(切换案例)

标签: javascript arrays loops


【解决方案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));

【讨论】:

  • 无意冒犯,因为这是一道家庭作业题,为她做是不好的形式。
  • 你几乎喂了她哈哈。但是,是的,这完全是模棱两可的,我刚刚给了她答案
  • 我知道做别人的作业不是一件好事 - 这就是为什么我没有评论代码并使用了一些如果你不知道你在说什么可能不容易解释的结构关于(作业需要解释工作,或者至少我是这样理解的)
【解决方案2】:

基本上,她应该使用while循环。

在(大部分)伪代码中:

more_entries = true;

while(more_entries)
{    
    response = prompt("Question for the user","");

    if (response == null)
    {
        more_entries = false;
    }
    else
    {
        // store value somewhere
    }    
}

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

【讨论】:

  • @danutenshu 非常欢迎您和您的朋友。我很感激你坦率地说这是家庭作业并且没有要求答案,而是要求指导。
猜你喜欢
  • 2021-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-17
  • 1970-01-01
相关资源
最近更新 更多