0

我正在尝试编写一个执行以下操作的简单程序:

构建一个名为 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状态=“关闭”;var totalCurrentPower = 62; var powerProduced = 62; 新电源总 = 0;

alert('Generator #' + generatorId + ' 现在是 ' + status + ' ,移除 ' + powerProduced + 'mw,总共是 ' + newPowerTotal + 'MW!');

任何帮助将不胜感激。我也尝试过删除退货并留下警报。这似乎没有帮助。

4

2 回答 2

1

除了已经提到的问题之外,我认为问题可能在于您没有调用该函数。你需要有

changePowerTotal()

调用某处使其工作,甚至抛出错误。此外,请确保定义了所有变量,并记住“=”是赋值,要检查变量使用“==”或“===”。

于 2013-11-10T15:14:45.083 回答
0

我同意上面的陈述,这是一个实现的 plunker 示例,希望对您有所帮助。

于 2013-11-10T15:41:12.663 回答