javascript - 函数返回意外结果
问题描述
我写了一个简单的函数,它是我目前阅读的关于 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))
and 它是 returnNaN
而不是55
. 那么为什么它不返回一个数字但是NaN
呢?
解决方案
i <= array.length
应该是i < array.length
。数组从第零个索引开始,所以最后一个元素将在 index 处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)));
推荐阅读
- android - 如果在 ViewPager2 中,Listview 中的快速滚动不起作用
- svg - 是否可以替换 HubSpot 代码库中的社交媒体图标?
- python - Python:使用列的最后一个字符将新值填充到现有列
- dart - Flutter signalr_core hub连接测试
- php - guzzlehttp 在 laravel 项目上抛出错误 - strtolower(): Argument #1 ($string) must be of type string, int given
- php - 如何使用 PHP/MYSQL 从我的项目页面在我的项目详细信息页面中显示一项
- openid - Quarkus 从类路径加载第 3 方属性文件
- python - PySide2 中的 QThread 已启动,但未在启动信号上触发插槽
- python - 根据列名在两列之间删除熊猫数据框中的多列
- javascript - 带有 Webpack 的 Javascript 类附加命名空间