JavaScript平均功能

时间:2014-02-11 17:34:09

标签: javascript average

我目前正在一个由商业教授教授的网络编程课程。当然,他对代码知之甚少,只是指出了这本书(这是一堆乱七八糟的意大利面)。

我遇到问题的确切任务在引号中。希望这看起来不会太乱。

数据可用

  

您需要一个名为的本地存储值:限定符
    您需要一个名为的本地存储值:factor
    有一个你需要命名的数组:sales
    存在阵列和本地存储,因此只需使用它们。

返回什么

  

返回平均奖金。

如何计算平均奖金

  
      
  1. 数组sales []中超过限定符的每个金额都会获得奖励   记住:数组意味着您认为()循环。
  2.   
  3. 奖金计算为销售额乘以因子。
  4.   
  5. 如果销售额大于限定符,则将奖金添加到奖金总额中。
  6.   
  7. 通过将总数除以符合条件的奖金数来计算平均值   记住:您将返回符合条件的平均奖金;不是奖金总额。
  8.   

据我所知,这个网站不适合你们,只为我做功课,我不希望这发生。以下是我现有的代码。我应该注意到,老师让我们将代码提交到由大学开发的控制台中。我说这是因为在这个赋值中,已经定义了某些本地存储变量,以及数组。我一直在尝试使用记事本测试此功能并将其保存在HTML文档中并使用浏览器进行测试。你会注意到我的代码是用浏览器编写的,我自己定义了数组和localstorage变量。希望这是有道理的。

这是我的JavaScript

sales = new [Array]();

sales[0] = 3;
sales[1] = 167;
sales[2] = 191;
sales[3] = 1;
sales[4] = 45;

localStorage.qualifier=5;
localStorage.factor=2;

total = 0;

function myFunction() {
     for (i=0;i<sales.length;i++){
          if (sales[i]>localStorage.qualifier) {
               bonus = sales[i]*localStorage.factor;
               total = total + bonus;                 
          };
          avg = total/bonus;
     };
     return avg;
};
myFunction();

alert(extraPay())

我想编写函数来计算平均奖金。我尝试从repl.it使用这个基于Web的文本编辑器,并且收到类型错误,说该对象不是函数。我用Google搜索了错误,这导致我访问了此网站并随后创建了一个帐户。非常感谢您的时间,如果您可以指出我的代码出错的地方,或者我是否只是疯狂到处,那真的会有所帮助。谢谢!很抱歉这篇令人难以忍受的长篇文章。

2 个答案:

答案 0 :(得分:4)

您的错误可能是因为这一行:

alert(extraPay());

您正在警告一个不存在的方法,除非它在别处定义。

此外,使用括号表示法声明数组要快得多:

var sales = [];

如果要使用对象创建表示法,则应执行以下操作:

var sales = new Array();

最后,根据作业和你的代码,我认为你不会得到你想要的。您正在计算总数,并将其除以最后的奖金金额。我认为您需要做的是计算总数并跟踪您有多少次奖金。然后将奖金计数器除以总计。

function myFunction() {
     var counter = 0;
     for (i=0;i<sales.length;i++){
         if (sales[i]>localStorage.qualifier) {
             bonus = sales[i]*localStorage.factor;
             total = total + bonus; 
             counter++;                
         };
         avg = total/counter;
     };
     return avg;
};
myFunction();

答案 1 :(得分:0)

每个人都指出了一些语法错误和代码的一般怪异。我会指出你已经阅读了其中一条指令:

  

通过将总数除以符合条件的奖金数来计算平均值。

目前你正在这样做......

total = total + bonus;

...当你应该除以合格奖金的数量时。为此,您需要一个名为bonusesQualified的新变量:

function calculate(sales) {
  var total = 0, bonusesQualified = 0;
  for (i = 0; i < sales.length; i++) {
    if (sales[i] > qualifier) {
        bonus = sales[i] * factor;
        total = total + bonus;
        bonusesQualified++;
    };
    avg = total / bonusesQualified;
  };
  return avg;
};

Full demo