【发布时间】:2012-03-15 23:56:50
【问题描述】:
我正在解决以下 kata:编写一个程序,将单词“sum”、“product”、“mean”或“sqrt”中的一个作为其第一个参数,并为进一步的参数提供一系列数字。程序将适当的函数应用于系列。
我已经解决了(代码如下),但它体积庞大且效率低下。我希望重写它,它有一个调用其他函数(即函数 sum、函数 product)的单个函数 calculator。
我的问题:如何编写函数 sum、product、sqrt 等,以便在函数计算器调用时,它们正确地获取计算器的参数并计算数学。
下面是庞大的代码:
function calculator() {
var sumTotal = 0;
var productTotal = 1;
var meanTotal = 0;
var sqrt;
if(arguments[0] === "sum") {
for(i = 1; i < arguments.length; i++) {
sumTotal += arguments[i];
}
return sumTotal;
}
if(arguments[0] === "product") {
for(i = 1; i < arguments.length; i++) {
productTotal *= arguments[i];
}
return productTotal;
}
if(arguments[0] === "mean") {
for(i = 1; i < arguments.length; i++) {
meanTotal += arguments[i];
}
return meanTotal / (arguments.length-1);
}
if(arguments[0] === "sqrt") {
sqrt = Math.sqrt(arguments[1]);
}
return sqrt;
}
calculator("sqrt", 17);
【问题讨论】:
-
这是作业吗?如果是这样,请标记它。
-
不,不是。我是编程和 JS 的新手。我从 Codecademy 开始,但正在努力寻找改进的方法。我找到了各种 Katas 的链接,我只是通过它们来尝试改进:knowing.net/index.php/2006/06/16/…
标签: javascript