这一段会输出什么值呢?
let arr = [1, 2, 0, 3]
for (let i = 0, val; val = arr[i++]; ) {
// ...
}
答案:只会输出1
和2
。
原因:当i=2
的时候取出来的值是0
,ta是会被判定为false
的,所以就退出循环。
如何解决这种情况呢,自己手写判断条件。
let arr = [1, 2, 0, 3]
for (let i = 0, val; ; ) {
val = arr[i++]
if (val === undefined) {
break
} else {
// ...
}
}