“array.length -1”在JavaScript中是什么意思
What does "array.length -1" mean in JavaScript?
例如,我知道如何使用 JavaScript for 循环来循环数组,但我仍然不明白array.length -1
是什么意思,特别是-1
部分。
在数组上使用 for 循环时,我们有这样的东西:
for (i = 0; i < array.length; i++) {...}
但我有时也见过这样的事情:
for (i = 0; i < array.length - 1; i++) {...}
在第二种情况下,为什么 array.length 中有"-1",它有什么作用?还有为什么有时有,有时没有显示?
这是为了防止栅栏错误,又名"逐个关闭"。
常见考试题目:
您需要建造100米的围栏,每米有一个栅栏柱。您需要多少个栅栏?
明显的快速(和错误)答案:
100 meters
--------------- = 100 posts
1 post
------
meter
因为对于 100 米的围栏,您需要 101 个柱子:
Distance: 1 2 .... 99 100
|-|-|.....| - | - |
Post: 1 2 3 ....99 100 101
现在有了数组,同样的事情也会发生。假设它是一个包含 5 个项目的数组:
for (i = 0 ; i <= 5; i++)
^--length of array
你最终会做
i: 0, 1, 2, 3, 4, 5
iteration: 1 2 3 4 5 6
哎呀,5 个项目数组,但你已经执行了 6 次循环 - 一次太多了。
您可以通过两种方式修复错误:
for (i = 0; i < length; i++)
^---change from "<=" to "<"
或
for (i = 0; i <= length - 1; i++)
^---change the upper limit value.
例如,如果您的数组有 4 个元素
var elementOfArray = [7, 9, 0, 2]
你想达到这些元素。在这种情况下,您需要知道 elementOfArray[i]
表示数组的元素,i 是索引。
因此,如果你在数组长度上加上'-1';你可以看到数组中的整个元素,如elementOfArray[0]---7
、elementOfArray[1]---9
、elementOfArray[2]---0
、elementOfArray[3]---2
。看!您在元素中取了整数。
如果不减去数组长度的 1,则会出错。因为没有表示数组任何元素的elementOfArray[4]
。
Javascript 数组是从 0 开始的,这意味着如果你有一个包含 5 个项目的数组,你将使用索引 0 到 4 来访问它们。他们减去一个("-"和"1"之间应该有一个空格以使其更清晰)以找到最后一个索引。
已编辑:如果他们减去一个,则测试应为"<="。
如果一次访问多个索引,通常希望通过确保每个访问的索引都< array.length
来避免溢出
所以如果你做这样的事情
array[x+2] = array[x] + array[x+1];
您通常希望确保[]
中出现的最高值小于 array.length
那么上面的示例中的 for 可能看起来像
for(int x = 0; x+2 < array.length; x++) {
array[x+2] = array[x] + array[x+1];
}
这在数学上是等价的
for(int x = 0; x < array.length - 2; x++) {
array[x+2] = array[x] + array[x+1];
}
这是我经过一些研究和实验后发现的。列表中的项目从 1 开始计数,这很明显,但索引从"0"开始计数。因此,假设您正在循环访问数组/列表,并声明整个数组的长度。例如:let 数组 = [1,2,3,4];for (i = 0; i <= array.length; i++){警报(一)}最后一个警报将显示"未定义",因为数组中没有索引为 4 的项目(尽管数组中的项目是)。因此,一个好的做法是"I <array.length"或"i><= array.length - 1"。如果我遗漏了什么,或者如果您需要更多澄清,请纠正我。
- 这是什么 ==- javascript 运算符
- Javascript中的空白是什么
- 在JavaScript中拆分日期字符串的更好方法是什么
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- javascript导入的最佳实践是什么
- @@(“at at”)在ES6 JavaScript中是什么意思
- minimy javascript是什么意思?Backbone.js
- JavaScript中的正则表达式应该是什么
- 用javascript记录传递给回调的参数的约定是什么
- 函数(i,val)在javascript中是什么意思
- 确定var是否是javascript中的elementFinder对象的方法是什么
- 用javascript修复这个JSON对象字符串最干净的方法是什么
- 如果控件位于活动的 RadPageView 中,Javascript 是什么?
- 这个关于保持测验分数的 JavaScript 是什么意思
- mean. js——这段javascript是什么意思?
- 这个JavaScript是什么
- Javascript: /*@ @*/是什么意思?
- 这个JavaScript是什么意思?
- 这行javascript是什么意思
- Swift对应的JavaScript是什么?操作符