Javascript for循环与对象而不是计数器?

前端之家收集整理的这篇文章主要介绍了Javascript for循环与对象而不是计数器?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
看看这段代码
for (var i = 0,f; f = families[i]; i++) {
}
@H_502_4@我之前没有真正看过这样的循环,我想确保我理解正确.
我是否正确假设如果families.length == 2,for行的第二部分将在f = families [2]上返回false?

@H_502_4@我本以为它需要像f ==系列[2]才能返回false.

解决方法

f = families [i]是一个返回families [i]值的表达式. (它还具有将该值赋给f的副作用) @H_502_4@如果families.length === 2那么族[2] === undefined因此表达式返回undefined,这是假的并且打破了循环.

@H_502_4@为了获得更多的黑客乐趣,你可以转向

for (var i = 0,f; f = families[i]; i++) {
  // body
}
@H_502_4@成

for (var i = 0,f; f = families[i++]; /* body */);
@H_502_4@您可能需要更换字符串; with,和string用i-1替换i.你也只是谋杀了可读性.

@H_502_4@还应该指出for循环对于可读性来说是愚蠢的.

Object.keys(families).forEach(function(key) {
  var family = families[key];
  /* body */
});
@H_502_4@显着性更强.

原文链接:https://www.f2er.com/js/150687.html

猜你在找的JavaScript相关文章