2010-07-19 198 views
1

我想问这里一些逻辑问题。for循环与if-else语句

让说我有一个for循环在JavaScript中删除整个项目: -

var i = 0; 
for (i=0;i<=itemsAll;i++) { 
    removeItem(i); 
} 

我不想删除项目当i =电流=例如2或3.

我该如何在哪里添加if-else语句?

请帮忙,有人吗?

+1

如果你从0开始我,你的问题应该使用'i 2010-07-19 05:20:38

回答

7

以相反的顺序对其进行迭代,只删除与当前项目不相同的项目。

var current = 2; 

var i = 0; 
for (i=itemsAll-1;i>=0;i--) { 
    if (i != current) { 
     removeItem(i); 
    } 
} 

我大概应该说明反向循环的原因。 Hans评论说,循环是反向完成的,因为'removeItem'可能导致剩余的项目被重新编号。

+0

+1,因为'removeItem'可能会导致剩余项目重新编号。虽然循环应该从'itemAll-1'开始,并在'i> = 0'时继续。 – 2010-07-19 05:52:23

+0

为更正而欢呼。 – S73417H 2010-07-19 05:54:10

+0

smarrrrrrrrrrt男子 – 2013-04-15 03:03:55

0

你可以在你的for循环中使用if测试,或者你可以将for循环分成两部分。

x = Math.min(current, itemsAll); 
for(i=0;i<x;++i){ 
    removeItems(i); 
} 
for(i=x+1; i<itemsAll;++i) 
{ 
    removeItems(i); 
} 
0

我们可以解决使用继续声明too.Detail约不断,可以发现here和一个非常简单的使用继续可以看出here

var current = 2; 
for(var i = 0; i<=itemsAll; i++) { 
    if(i === current) { continue; } 
    removeItem(i); 
}