Javascript:循环属性内部的条件递增或递减
Javascript: conditional increment or decrement inside for loop properties
我知道我可以做IF ELSE,但我需要知道是否可以设置条件循环,比如:
for ( i=0; i<la; dr?(i++):(i--) ) {}
或
for ( if (dr) { i=0; i<length; i++ } else { i=length-1; i--} ) {}
另一种仍然紧凑(甚至更紧凑)但可读性更强、效率更高的方法是:
var str = 'hello';
for(var i=(dr?0:str.length-1), d=(dr?1:-1); str[i]; i+=d) do_something();
如果你把1或-1放在dr
中,我认为这是有道理的:
for(var i=+(dr===-1&&str.length-1); str[i]; i+=dr) do_something();
是的,使用条件循环是可以的,但不建议使用,因为对于试图理解代码的新手来说,这会变得非常困难。如果使用第一种语法,则代码不可读。第二个语法可读性很强,所以我认为你应该更喜欢使用它
但是,如果你可以使用第一个版本的语法,那么就使用它。你应该始终使用最容易阅读和维护的代码。
First是可以的。(但您可能也必须在end_condition上使用a?b:c
)第二个是:语法错误^^
疯狂的方式:
var str = 'hello';
for(i=(dr?0:str.length-1);(dr?i<str.length:i>=0);(dr?i++:i--)) do_something();
正确的方式:
var str = 'hello';
if(dr)
for(i=0;i<str.length;i++) do_something();
else
for(i=str.length-1;i>=0;i--) do_something();
(代码未测试)
-
第一个是好的和有效的。为此:
for ( i=0; i<4; dr?(i++):(i--) )
检查jsFiddle此处
-
第二个不好,因为for循环需要一个标识符,而得到了"if"。
相关文章:
- 基于两个条件退出While循环
- Javascript:循环属性内部的条件递增或递减
- 在ng重复循环中显示条件内容的最佳方式是什么
- 如何使用React JS中的循环,根据条件渲染或不渲染表数据
- 如果条件为循环-性能差异
- Coffeescription:循环中的条件变量未正确声明
- Javascript'数组'和'循环'如何“;变量[i]”;是一个条件
- 使用条件for循环更新数组-Javascript
- JavaScript while循环没有'不能在有条件的情况下工作
- for循环与if条件
- Javascript 'while' 循环,如果条件为 false,如何停止迭代
- 如何在循环对象时有条件地使用数据
- Javascript :基于数组的条件循环
- 我只想在给出条件时调用一些循环.但这是错误
- 在循环中使用条件
- 当if条件被添加到循环中时,Javascript函数将停止工作
- 如果打开 JavaScript 弹出窗口,如何编写 Watir 条件循环以单击“确定”按钮
- 如何在Imacros中为条件循环加载javascript变量中的csv Col值
- Angular.js更复杂的条件循环
- 条件循环未按预期工作