问题描述
在我的for循环中,我得到一个“避免不必要的语句”,代码可以正常工作,但我认为必须有一种更有效的方式编写以下内容。
int i = 0;
for (i; i < (list.length - list.indexOf('.')); i++)
^
我在for循环中的第一个i上收到警报。
我知道替代方法是将其替换为var i = 0
,但是我已经这样做了,因此我可以使用ith位置来运行此循环之后的下一个循环。
解决方法
您无需在for
的第一部分中放置任何内容:
var i = 0;
for (; i < list.length - list.indexOf('.'); i++) ...
将i
放在技术上是有效的,但由于它无能为力,因此毫无用处(这就是为什么会收到警告的原因)。
您也可以这样做:
var i = 0;
for (var n = list.length - list.indexOf('.'); i < n; i++) ...
,并避免计算循环的每一步的终点。 那会更有效率。
您也可以这样做:
var n = list.length - list.indexOf('.');
for (var i = 0; i < n; i++) ...
,然后使用n
代替i
。对于读者来说,这将使其成为一个更传统的循环。