для цикла с оператором if-else - PullRequest
2 голосов
/ 19 июля 2010

Я хотел бы задать логический вопрос здесь.

Допустим, у меня есть цикл for в javascript для удаления всех элементов: -

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

Я не хочу удалять элемент, когда i = current = например, 2 или 3.

как мне или куда мне добавить оператор if-else в этот цикл for?

Пожалуйста, помогите, кто-нибудь?

Ответы [ 3 ]

8 голосов
/ 19 июля 2010

Переберите его в обратном порядке и удалите только те элементы, которые не равны текущему элементу.

var current = 2;

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

Я, вероятно, должен был указать причину обратного цикла. Как прокомментировал Ганс, цикл выполняется в обратном порядке, поскольку «removeItem» может привести к перенумерации оставшихся элементов.

0 голосов
/ 27 июля 2016

Мы можем решить эту проблему, используя continue заявление. Подробную информацию о continue можно найти здесь и очень простое использование continue можно увидеть здесь

var current = 2;
for(var i = 0; i<=itemsAll; i++) {
    if( i === current) { continue; }
    removeItem(i);
}
0 голосов
/ 19 июля 2010

Вы можете использовать тест if в цикле for, как уже предлагалось, или разделить цикл for на две части.

x = Math.min(current, itemsAll);
for(i=0;i<x;++i){
   removeItems(i);
}
for(i=x+1; i<itemsAll;++i)
{
   removeItems(i);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...