我目前正在一个由商业教授教授的网络编程课程。当然,他对代码知之甚少,只是指出了这本书(这是一堆乱七八糟的意大利面)。
我遇到问题的确切任务在引号中。希望这看起来不会太乱。
数据可用
您需要一个名为的本地存储值:限定符
您需要一个名为的本地存储值:factor
有一个你需要命名的数组:sales
存在阵列和本地存储,因此只需使用它们。
返回什么
返回平均奖金。
如何计算平均奖金
- 数组sales []中超过限定符的每个金额都会获得奖励 记住:数组意味着您认为()循环。
- 奖金计算为销售额乘以因子。
- 如果销售额大于限定符,则将奖金添加到奖金总额中。
- 通过将总数除以符合条件的奖金数来计算平均值 记住:您将返回符合条件的平均奖金;不是奖金总额。
醇>
据我所知,这个网站不适合你们,只为我做功课,我不希望这发生。以下是我现有的代码。我应该注意到,老师让我们将代码提交到由大学开发的控制台中。我说这是因为在这个赋值中,已经定义了某些本地存储变量,以及数组。我一直在尝试使用记事本测试此功能并将其保存在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搜索了错误,这导致我访问了此网站并随后创建了一个帐户。非常感谢您的时间,如果您可以指出我的代码出错的地方,或者我是否只是疯狂到处,那真的会有所帮助。谢谢!很抱歉这篇令人难以忍受的长篇文章。
答案 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;
};