问题描述
作为 for 或 while 循环中的条件,是否可以使用不带“i”的语句?
例如:
for (let i = 0 ; myArray.length =< 7; i++)
我希望循环一直运行直到满足我的条件,但不确定是否可以在不包含“i”的情况下实现。
解决方法
试试
while (myArray.length <= 7) {
}
带有<=
,而不是=<
在这种情况下,您应该使用 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 将指向开始并递增直到结束。
如果您有 condition
但不需要 iterator
,习惯上使用 while loop
:
while (myArray.length < 8) {
[... CODE HERE ...]
}
进一步阅读:
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/while
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/do...while
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Loops_and_iteration
for ( initiaizer; condition; increment) {
body
}
等同于:
initializer
while (condition) {
body
increment
}
并且您可以在每个中遵循相同的规则。含义初始化器和增量实际上是可选的(for (; false; ) {}
是有效的)。创建和递增名为 i
的变量只是一个有用的约定,没有特殊意义。
For 循环的发明是为了在通常情况下简化 while 循环,在这种情况下,您希望基本上从一个数字到另一个数字进行计数。如果您不这样做,while 循环可能会更好。