如果nuovaX
调用了NaN
,则下面的JavaScript函数s!=0
会返回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;
}
。我怎么能摆脱这个?
{{1}}
答案 0 :(得分:2)
稍微简化一下:
function d(s, di, dd){
return di * Math.pow(dd, s);
}
function nuovaX(s, di, dd, angolo, xi){
if(s==0) return xi;
return nuovaX(s-1, di, dd, angolo) + d(s, di, dd) * Math.cos(s * angolo);
}
nuovaX
需要5个参数,但它对自身的递归调用只接收4个参数 - 缺少xi
。
答案 1 :(得分:1)
此处缺少xi
:
x=nuovaX(s-1,di,dd,angolo)+d(s,di,dd)*Math.cos(s*angolo);
/\
/\
所以第二次迭代xi
是undefined
。