JavaScript中FOR循环中的复杂条件

时间:2015-04-03 12:42:35

标签: javascript

我想知道是否可以在JavaScript中将2个语句表示为FOR循环的条件。

for (var i = 0; i < x.length || 10; i++) {

}

而不是写

for (var i = 0; i < x.length; i++) {
    if(i<10) {

    }
}

使用过的参考资料(没有太多帮助):

Multiple conditions in for loop

Multiple conditions in for statement

2 个答案:

答案 0 :(得分:4)

如果目标是在i到达10i到达数组末尾时结束循环,则可以这样写:

for (var i=0; i<x.length && i<10; i++) {

在这种情况下,您也可以像这样编写

for (var i=0; i<Math.min(x.length,10); i++) {

或为了更好的表现:

for (var i=0, n=Math.min(x.length,10); i<n; i++) {

答案 1 :(得分:2)

问题不在for循环的语法中,而在于您放置条件文件的方式:

i < x.length || 10

评估为

(i < x.length) || 10

评估为

true || 10

false || 10

取决于i的值和x

的长度

第一个将导致true,后者将导致10

所以for循环会永远持续下去,并不等同于您发布的第二个代码。

以上是解释为什么您发布的两个代码段在功能上不相同。

正确的陈述是

for (var i=0; i<x.length && i<10; i++) {

破坏的优秀答案中提出的其中一个。