因为我发现了这个片段,所以我经常使用它来迭代数组:
for (i = 0; elem = array[i]; i++) doStuff(elem);
如果array
可以包含任何评估为假的东西(''
, undefined
, null
, 0
, false
),显然是非常错误的。但是,如果您确定不是这种情况,是否有人看到使用这种方法的另一个风险?
我问这个,因为它似乎不是很常用,虽然它对我来说真的很棒,所以我开始认为我错过了一个明显的缺点。
因为我发现了这个片段,所以我经常使用它来迭代数组:
for (i = 0; elem = array[i]; i++) doStuff(elem);
如果array
可以包含任何评估为假的东西(''
, undefined
, null
, 0
, false
),显然是非常错误的。但是,如果您确定不是这种情况,是否有人看到使用这种方法的另一个风险?
我问这个,因为它似乎不是很常用,虽然它对我来说真的很棒,所以我开始认为我错过了一个明显的缺点。
你知道缺点,只要你能忍受它们......
另一种没有缺点的方法可能是
for (var i = 0, l = array.length, elem; i < l; elem = array[i++])
但它可能更模糊。
我认为至少有两个主要缺点:
elem == array[i]
.保持简单,对你自己和你的同事都是如此。
for (var i = 0; i < array.length; i++) {
var elem = array[i];
doStuff(elem);
}