我正在编写一个接受数字并返回其阶乘的函数。它有效,但是为什么必须在第二个for()语句的第一个参数上“ -1”呢?
var firstFactorial = function(num){
var numBreakdown = [];
var total = 1;
for(var i = 1; i <= num; i++){
numBreakdown.push(i);
}
for(var y = numBreakdown.length-1; y > 0; y--){
total *= numBreakdown[y]
}
console.log(total);
return total;
}
firstFactorial(7);
最佳答案
这是因为在数组中,最后一个元素的索引(位置)始终比长度小1。而且您必须从最后一个在length-1索引上的元素开始操作。
这是包含所有七个元素及其索引的数组。
numBreakdown=[1,2,3,4,5,6,7]
| | | | | | |
index:0,1,2,3,4,5,6
您可以看到要访问元素7,必须使用numBreakdown [6]或numBreakdown [length-1],此处为length = 7或numBreakdown [y],其中y = length-1。