首页 > 解决方案 > 为什么我的 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.logreturn它时,它只返回最后一个元素乘以函数参数,即 if number == 5,它只返回10*5=50而不是整个迭代。为什么会这样?

标签: javascript

解决方案


当你return做某事时,你正在打破被调用的函数。当您将某些内容打印到控制台而不返回时,该函数将继续运行,直到执行最后一个循环。

在您的示例中,该函数将在返回以下第一个结果后停止:

arr[i] + '*' + number + '=' + answer

wherei=0number=5,所以它会返回5


推荐阅读