2010-07-19 163 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); 
}