[英]Closure compiler warning on for loop
我正在使用某种非常规的for循环,该循环很适合我在下面解释的内容(不必费心显示变量声明):
if (arr && arr.length > 0) {
for (i = arr.length; i--; i) {
element = arr.pop();
//rest of code
}
}
Closure编译器向我发出警告:“警告-可疑代码。此代码没有副作用,是否存在错误?” 专门指向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并关闭警告。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.