javascript - 为什么我的 for 循环只读取我创建的数组的最后一个元素?
问题描述
我尝试在代码 kata 中回答一个简单的问题,问题是这样的:
您的目标是返回数字的乘法表,该数字始终是 1 到 10 的整数。例如,乘法表(字符串)number == 5
如下所示:
1 * 5 = 5
2 * 5 = 10
3 * 5 = 15
4 * 5 = 20
5 * 5 = 25
6 * 5 = 30
7 * 5 = 35
8 * 5 = 40
9 * 5 = 45
10 * 5 = 50
这是我做的代码,但我用过console.log
function multiTable(number) {
// good luck
let arr = [1,2,3,4,5,6,7,8,9,10];
for(i = 0; i < arr.length; i++) {
let answer = arr[i] * number;
console.log(arr[i] + '*' + number + '=' + answer);
}
}
当我使用开发工具在控制台窗口中尝试它时,它运行正常,但是当我更改console.log
为return
它时,它只返回最后一个元素乘以函数参数,即 if number == 5
,它只返回10*5=50
而不是整个迭代。为什么会这样?
解决方案
当你return
做某事时,你正在打破被调用的函数。当您将某些内容打印到控制台而不返回时,该函数将继续运行,直到执行最后一个循环。
在您的示例中,该函数将在返回以下第一个结果后停止:
arr[i] + '*' + number + '=' + answer
wherei=0
和number=5
,所以它会返回5
。
推荐阅读
- python - 查询具有数字字段的表时出现模块错误
- go - 转换为多个匿名接口是否等同于类型切换?
- javascript - 正则表达式中lookbehind的Javascript替代方法
- python - Python Beautifulsoup UnicodeDecodeError
- python - 如何根据 measued_at 列获得摄氏度的平均值?
- mysql - 已解决-续集-ORM-关联不起作用
- python - Tkinter Entry .get 从定义
- azure-ad-b2c - 由于缺少声明信息,向 Azure AD B2C 自定义策略注册失败
- node.js - Discord.js TypeError:无法读取未定义的属性“添加”
- postgresql - Postgres Copy To CSV Array 是双引号