我编写了一个简单的函数,该函数是我目前阅读的有关JS的书中的练习之一。
function range(start, end) {
let array = [];
for(start; start <= end; start++) {
array.push(start)
}
return array;
}
function sum(array) {
let result = 0;
for(let i = 0; i <= array.length; i++) {
result += array[i];
}
return result;
}
我使用sum(range(1, 10))
,它返回NaN
而不是55
。那么为什么不返回数字而是返回NaN
?
答案 0 :(得分:7)
i <= array.length
应该是i < array.length
。数组从第零个索引开始,因此最后一个元素将在索引array.length - 1
处。
function range(start, end) {
let array = [];
for(start; start <= end; start++) {
array.push(start)
}
return array;
}
function sum(array) {
let result = 0;
for(let i = 0; i < array.length; i++) {
result += array[i];
}
return result;
}
console.log(sum(range(1, 10)));