闭包编译器警告 for 循环
Closure compiler warning on for loop
我正在使用一个有点非常规的 for 循环,它适用于我正在做的事情,如下所示(懒得显示变量声明):
if (arr && arr.length > 0) {
for (i = arr.length; i--; i) {
element = arr.pop();
//rest of code
}
}
闭包编译器给我一个警告:"警告 - 可疑代码。 这段代码没有副作用,有bug吗?专门指向 for 循环参数中的最后一个"i"。
如果我删除 i,jslint 会抛出警告,如果我离开它,关闭会抛出警告。 总共有三个这样的循环,有没有一种"闭包友好"的方法可以做到这一点?
如何"正常方式"?
if (arr && arr.length > 0) {
for (i = arr.length; i > 0; --i) {
element = arr.pop();
//rest of code
}
}
将递减放在测试中并不是编写for
循环的正常方法。
甚至更正常:
if (arr && arr.length > 0) {
for (i = arr.length - 1; i >= 0; --i) {
element = arr.pop();
//rest of code
}
}
。但是由于您不使用i
,因此无关紧要。
或者您可以使用while
:
if (arr && arr.length > 0) {
i = arr.length;
while (i--) {
element = arr.pop();
//rest of code
}
}
对于将来的读者,如果要减少数组的长度,请不要使用 for
循环,请使用while
:
if (arr) {
while (arr.length) {
element = arr.pop();
...
}
}
是的 - 像这样的东西应该可以解决问题:
for (i = arr.length; i > 0; i--) {
使用 jshint 而不是 jslint 并关闭警告。
相关文章:
- 为什么JavaScript在for循环为3时向所有4发出警报
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 我的javascript for循环不起作用
- For循环冻结Javascript
- 如何在for循环中添加事件侦听器
- 双“for”循环(循环)
- javascript for循环不起作用
- for循环中的javascript if语句找不到==
- Javascript在for循环中等待处理请求
- 我没有'I don’我不理解for在循环中的用途
- 为什么在 Javascript 中使用空的 for 循环 - for(;;).
- 错误后如何停止循环“FOR”
- 如何使用循环 for 与 java 脚本一起检查输入中的值
- 如何正确使用ngRepeat,同时使用循环for
- 是否可以使用循环(for/while)来制作动画?
- 在循环for循环时如何进入和退出
- Javascript原型循环for in数组
- 在对象数组中循环for
- Javascript循环:for循环工作,但不能映射
- 如何创建一个循环"for"在json