【发布时间】:2016-03-01 23:14:51
【问题描述】:
如果为s!=0 调用下面的JavaScript 函数nuovaX,则返回NaN。我怎样才能摆脱它?
function d(s,di,dd){
var ris=di*Math.pow(dd,s);
return ris;
}
function nuovaX(s,di,dd,angolo,xi){
var x=0;
if(s==0){
x=xi;
}
else{
x=nuovaX(s-1,di,dd,angolo)+d(s,di,dd)*Math.cos(s*angolo);
}
return x;
}
【问题讨论】:
-
你能创建一个我们可以测试它的小提琴吗?
-
至少,我们需要查看样本调用及其预期结果。
-
显然是一个不受欢迎的意见,但我不同意反对票 - 我明白为什么@Leonardo Mutti 在这种情况下觉得不需要提供任何额外信息。该函数返回 NaN - 这意味着发生了一些无效的数学运算,因此不需要额外的上下文。
-
@GershomMaes 虽然我们现在知道原因,但传递给函数的参数可能会导致错误,但在
s的情况下不会检查这些参数是0。例如,如果在将angolo参数设置为"foo"或null的情况下调用该函数,则该函数将同样失败。 (现在,这值得 4 票否决吗?可能不。) -
我只是假设参数不是问题的一部分——它似乎是隐含的。也许值得明确说明:P
标签: javascript function recursion nan