爲什麼這個程序不能正常工作?的Javascript階乘程序
這是http://www.freecodecamp.com/challenges/bonfire-factorialize-a-number
function factorialize(num)
{
for (i=num; i>0; i--)
{
num*= num[i];
}
return num;
}
factorialize(5);
爲什麼這個程序不能正常工作?的Javascript階乘程序
這是http://www.freecodecamp.com/challenges/bonfire-factorialize-a-number
function factorialize(num)
{
for (i=num; i>0; i--)
{
num*= num[i];
}
return num;
}
factorialize(5);
的練習中,你將伴隨着num[i]
但num是不是數組(也就是你的錯誤)。此外,你的第一次迭代將乘以5 * 5這是錯誤的,它應該是5 * 4,所以我們開始於i=num-1
。而且i> 1就足夠了,num *= 1
是毫無意義的。
這個工程:
function factorialize(num)
{
for (i=num-1; i>1; i--)
{
num*= i;
}
return num;
}
factorialize(5);
只是有點太晚了......
你只應該使用num *= i;
而不是num *= num[i]
。您的代碼所做的是嘗試訪問數字對象num
的屬性i
,該屬性未定義。
你也應該將環路初始化改變for(var i = num - 1; i > 1; i--)
只創建一個局部變量,而不是全球性的。另外,乘以num
乘以num
(第一個循環週期)將會給出不正確的結果。最後但並非最不重要的是,乘以1(最後一個循環週期)是無用的。
看看你的瀏覽器的開發者工具的錯誤。 – m69