我正在尝试编写一个执行以下操作的简单程序:
构建一个名为changePowerTotal的函数声明,它接受:
产生的总电流(一个数字) 生成器ID(数字) 生成器的新状态(表示“打开”或“关闭”的字符串) 并且该发电机产生的电量(一个数字) 你的功能应该:
返回新生成的总功率 以下列格式提醒技术人员 如需开启:
发电机#2现已开启,增加62兆瓦,总共62兆瓦! 或关闭:
发电机#2现已关闭,移除62兆瓦,总计0兆瓦!
到目前为止我的解决方案如下:
var generatorId = 2;
var status = "off";
var totalCurrentPower = 62;
var powerProduced = 62;
function changePowerTotal (totalCurrentPower, generatorId, status, powerProduced){
if(status = "off"){
var offPowerTotal = totalCurrentPower - powerProduced;
alert('Generator #' + generatorId + ' is now ' + status + ' , removing ' + powerProduced + 'mw, for a total of ' + newPowerTotal + 'MW!');
return offPowerTotal;
}
else {
var onPowerTotal = totalCurrentPower + powerProduced;
alert('Generator #' + generatorId + ' is now ' + status + ' , adding ' + powerProduced + 'mw, for a total of ' + newPowerTotal + 'MW!');
return onPowerTotal;
}
}
麻烦的是,这不会引发警报,对我来说更糟糕的是新手,它不会在javascript控制台中产生错误。我做错了什么?
如果我将其分解并将警报中的所有变量分配为全局,然后进行警报,则可以正常工作(参见下文)。这让我相信它与我的函数中的if / else有关。
var generatorId = 2; var status =“off”; var totalCurrentPower = 62; var powerProduced = 62; newPowerTotal = 0;
警告('生成器#'+ generatorId +'现在是'+ status +',正在删除 '+ powerProduced +'mw,共计'+ newPowerTotal +'MW!');
非常感谢任何帮助。我也尝试删除退货并离开警报。这似乎没有帮助。
答案 0 :(得分:1)
除了已经提到的问题之外,我想问题可能是你没有调用这个函数。你需要
changePowerTotal()
在某处调用它可以工作,甚至抛出错误。另外,确保定义了所有变量,并记住“=”是赋值,检查变量使用“==”或“===”。
答案 1 :(得分:0)
我同意上述陈述,here is a plunker example of it implemented希望这会有所帮助。