【发布时间】:2021-07-12 12:10:06
【问题描述】:
作为 for 或 while 循环中的条件,可以使用不带“i”的语句吗?
例如:
for (let i = 0 ; myArray.length =< 7; i++)
我希望循环一直运行直到满足我的条件,但不确定在不包含“i”的情况下是否可以实现。
【问题讨论】:
-
你想做什么?
标签: javascript loops initializer
作为 for 或 while 循环中的条件,可以使用不带“i”的语句吗?
例如:
for (let i = 0 ; myArray.length =< 7; i++)
我希望循环一直运行直到满足我的条件,但不确定在不包含“i”的情况下是否可以实现。
【问题讨论】:
标签: javascript loops initializer
for ( initiaizer; condition; increment) {
body
}
等同于:
initializer
while (condition) {
body
increment
}
您可以在每个中遵循相同的规则。这意味着初始化程序和增量实际上是可选的(for (; false; ) {} 是有效的)。创建和递增一个名为i 的变量只是一个有用的约定,没有特殊含义。
发明了 For 循环是为了在您希望基本上从一个数字计数到另一个数字的常见情况下简化 while 循环。如果你不这样做,while 循环可能会更好。
【讨论】:
for(;;){ break } - 条件也是可选的,它只需要手动跳出循环。
()??? 中的分号)。大多数时候我更喜欢数组方法。
试试
while (myArray.length <= 7) {
}
使用<=,而不是=<
【讨论】:
如果您有condition 但不需要iterator,通常使用while loop:
while (myArray.length < 8) {
[... CODE HERE ...]
}
进一步阅读:
【讨论】:
在这种情况下,您应该使用 while 循环
while (condition)
statement
但您也可以使用 for...of 和 forEach 以及相同的 for 循环,如下所示:
您可以使用for...of
const iterable = 'boo';
for (const value of iterable) {
if(mycondition){
console.log(value);
}
}
或
您也可以使用forEach
const items = ['item1', 'item2', 'item3']
const copyItems = []
items.forEach(function(item){
if(mycondition){
copyItems.push(item)
}
})
或
for ([initialization]; [condition]; [final-expression])
statement
for (;;) 是一个无限循环,相当于 while (true),因为没有测试条件。
for ( ; s < myArray.length ; s++) 是一个没有初始化的循环。 s 将指向开始并递增直到结束。
【讨论】: