javascript - 为什么用我
为什么i<array.length
而不是i=array.length
当我最初编写代码时,我告诉 for 循环遍历数组的长度。我将 for 循环定义为(var i = 0; i=array.length; i++)
. 这创造了一个无限循环。修复它的方法是设置i<array.l
问题描述
为什么i<array.length
而不是i=array.length
当我最初编写代码时,我告诉 for 循环遍历数组的长度。我将 for 循环定义为(var i = 0; i=array.length; i++)
. 这创造了一个无限循环。修复它的方法是设置i<array.length
. 但是,有人可以向我解释为什么吗?感觉好像循环应该继续到数组的末尾。如果我将它设置为小于数组的长度,我怎么知道它已经检查了所有的数字?
谢谢!
注意:这是我的代码。
var array = [3, 6, 2, 56, 32, 5, 89, 32];
var largest = 0;
for (var i = 0; i largest) {
largest = array[i]
}
}
console.log(largest);
这是一个 VS 代码错误。我安装了 1.17,它运行良好https://code.visualstudio.com/updates/v1_17
解决方案
因为
for (i = 0; i < array.length; i++)
方法:
i = 0
我从 0 开始for-loop
i < array.length
只要i
小于array.length,我们就继续循环
i++
在每个循环之后,我们将 i 增加 1(即 i = i + 1)
当您替换i < array.length
为i = array.length
时,您是在说let i = array.length
将值设置i
为array.length
。只要语句为真,它将继续循环。这就是为什么它是一个无限循环。
但我想那是一个错字,你的意思是i == array.length
。仍然不起作用,因为所有数组都以索引 0 开头(这就是i = 0
开始的原因)。这意味着它们在索引处结束array.length - 1
。
例子:
arr = ["a","b","c"]; //arr[2] = "c", but arr.length = 3
所以如果循环遍历arr
,我们需要在 index 处停止2
,而不是3
推荐阅读
- python - 我可以在 Python 中按第二个参数对列表进行排序吗?
- flutter - 如果文本溢出颤动如何自动换行
- laravel - 使用 laravel 在 null 上调用成员函数 getClientOriginalName()
- r - ggplot2中的每月时间序列数据
- python - 产生多个敌人并在子弹击中时获取信息
- json - 如何将 JSON 中的数据合并到 Flutter 中的小部件?
- react-native - 有没有办法改变 react-native-paper 中按钮元素的底层颜色?
- c - 将接收到的参数传递给回调函数
- collections - MFC:覆盖 CMap<> 对象的 HashKey() 的正确方法?
- javascript - 无法使用 Javascript 将 HTML 按钮元素的标题或值设置为 C 度符号
为什么i<array.length
而不是i=array.length
当我最初编写代码时,我告诉 for 循环遍历数组的长度。我将 for 循环定义为(var i = 0; i=array.length; i++)
. 这创造了一个无限循环。修复它的方法是设置i<array.l
问题描述
为什么i<array.length
而不是i=array.length
当我最初编写代码时,我告诉 for 循环遍历数组的长度。我将 for 循环定义为(var i = 0; i=array.length; i++)
. 这创造了一个无限循环。修复它的方法是设置i<array.length
. 但是,有人可以向我解释为什么吗?感觉好像循环应该继续到数组的末尾。如果我将它设置为小于数组的长度,我怎么知道它已经检查了所有的数字?
谢谢!
注意:这是我的代码。
var array = [3, 6, 2, 56, 32, 5, 89, 32];
var largest = 0;
for (var i = 0; i largest) {
largest = array[i]
}
}
console.log(largest);
这是一个 VS 代码错误。我安装了 1.17,它运行良好https://code.visualstudio.com/updates/v1_17
解决方案
因为
for (i = 0; i < array.length; i++)
方法:
i = 0
我从 0 开始for-loop
i < array.length
只要i
小于array.length,我们就继续循环
i++
在每个循环之后,我们将 i 增加 1(即 i = i + 1)
当您替换i < array.length
为i = array.length
时,您是在说let i = array.length
将值设置i
为array.length
。只要语句为真,它将继续循环。这就是为什么它是一个无限循环。
但我想那是一个错字,你的意思是i == array.length
。仍然不起作用,因为所有数组都以索引 0 开头(这就是i = 0
开始的原因)。这意味着它们在索引处结束array.length - 1
。
例子:
arr = ["a","b","c"]; //arr[2] = "c", but arr.length = 3
所以如果循环遍历arr
,我们需要在 index 处停止2
,而不是3
推荐阅读
- python - 我可以在 Python 中按第二个参数对列表进行排序吗?
- flutter - 如果文本溢出颤动如何自动换行
- laravel - 使用 laravel 在 null 上调用成员函数 getClientOriginalName()
- r - ggplot2中的每月时间序列数据
- python - 产生多个敌人并在子弹击中时获取信息
- json - 如何将 JSON 中的数据合并到 Flutter 中的小部件?
- react-native - 有没有办法改变 react-native-paper 中按钮元素的底层颜色?
- c - 将接收到的参数传递给回调函数
- collections - MFC:覆盖 CMap<> 对象的 HashKey() 的正确方法?
- javascript - 无法使用 Javascript 将 HTML 按钮元素的标题或值设置为 C 度符号