我想知道是否可以在JavaScript中将2个语句表示为FOR循环的条件。
for (var i = 0; i < x.length || 10; i++) {
}
而不是写
for (var i = 0; i < x.length; i++) {
if(i<10) {
}
}
使用过的参考资料(没有太多帮助):
答案 0 :(得分:4)
如果目标是在i
到达10
或i
到达数组末尾时结束循环,则可以这样写:
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++) {
或破坏的优秀答案中提出的其中一个。