如果我对索引进行硬编码,它会按预期工作,为什么这个增量器会返回NAN
Why is this incrementer returning NAN when if I hard code the index it works as expected?
我试图做一个简单的阶乘代码挑战,但使用Javascript,当我试图通过循环索引来获得索引位置时,我得到了NAN。我知道NAN属于数字类型,只是Javascript不知道是哪个数字。我不明白为什么这种情况会发生。此外,我如何使用Javascript中的循环来获取数组的索引?谢谢
// Input = 4 Output = 24
// Input = 8 Output = 40320
var total = 0;
var factor_Array = [];
function FirstFactorial(num) {
for (var i = 1; i <= num; i++){
factor_Array.unshift(i);
// console.log(factor_Array);
}
for (var j = 0; j < factor_Array.length; j++){
// Why does this work??? But not when I use 'j' to grab the index position? Seems like BOTH ways should work
total = factor_Array[0] * factor_Array[0+1];
total = factor_Array[j] * factor_Array[j+1];
}
console.log(total);
//return num;
}
FirstFactorial(4);
因为当j = (factor_Array.length-1)
时,它试图访问不存在的j+1元素。
以下将如您所期望的一样工作
for (var j = 0; j < (factor_Array.length-1); j++){
total = factor_Array[j] * factor_Array[j+1];
}
循环时
for (var j = 0; j < factor_Array.length; j++){
total = factor_Array[j] * factor_Array[j+1];
}
然后,在最后一次迭代中,自以来,您将超出数组边界
j = factor_Array.length - 1
并且您正在访问j + 1
。
相关文章:
- 为什么这在IE中的工作方式与在Firefox中不同
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- 有时 array.length 只在 .push() 之后工作(为什么?)
- Javascript don'刷新页面后无法工作-为什么
- Jquery简单脚本只能在本地工作.为什么?像Javascript翻译
- 可以't让jQuery循环插件工作为什么
- jQuery animate()不工作.为什么?
- window.onload没有'I don’我不能一直工作.为什么?
- Rails自动完成可以在父形式中工作,但不能在嵌套形式中工作.为什么
- LESS不能在IE11中工作-为什么
- ECMAScript的承诺.all方法与jQuery.Deferred一起工作.为什么
- 防止LinkButton post回OnClientClick不工作.为什么
- JavaScript toUpperCase不工作.为什么
- html5:帆布.getImageData不能正常工作-为什么
- javascript的内联样式更改不能在移动浏览器(chrome/dolphin/android)上工作:为什么?
- 为什么我的幻灯片不能工作?为什么我的照片消失了
- jQuery验证在服务器中不起作用!在本地工作.为什么?
- 单页导航无法正常工作.为什么
- AJAX: error(已弃用!)工作,而failed不工作.为什么
- d3选择器:可以在代码中工作,但不能在控制台中工作.为什么