views:

121

answers:

2

I would like to ask some logic question here.

Let say I have a for loop in javascript to remove the whole items:-

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

I do not want to remove item when i = current = e.g. 2 or 3.

how do I or where do I add a if-else statement in this current for loop?

Please help, anyone?

A: 

You can use an if test in your for loop as already suggested, or you can split your for loop in two.

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

Iterate over it in reverse order and only remove the items which does not equal the current item.

var current = 2;

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

I probably should have stated the reason for the reverse loop. As Hans commented, the loop is done in reverse because the 'removeItem' may cause the remaining items to be renumbered.

S73417H
+1 for the reverse loop, because the 'removeItem' may cause the remaining items to be renumbered. Although the loop should probably start from `itemAll-1` and continue when `i>=0`.
Hans Kesting
Cheers for the correction.
S73417H