我想在这里问一些逻辑问题。
假设我在javascript中有一个for循环来删除整个项目: -
var i = 0;
for (i=0;i<=itemsAll;i++) {
removeItem(i);
}
当i = current =例如,我不想删除项目2或3。
我如何或在何处在此当前for循环中添加if-else语句?
请帮忙,有人吗?
答案 0 :(得分:8)
以相反的顺序迭代它,只删除不等于当前项目的项目。
var current = 2;
var i = 0;
for (i=itemsAll-1;i>=0;i--) {
if (i != current) {
removeItem(i);
}
}
我可能应该说明反向循环的原因。正如Hans评论的那样,循环是反向完成的,因为'removeItem'可能导致剩余的项重新编号。
答案 1 :(得分: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);
}
答案 2 :(得分:0)
我们也可以使用 continue 语句来解决问题。可以找到有关“继续”的详细信息here,可以看到继续的非常简单的使用{{ 3}}
var current = 2;
for(var i = 0; i<=itemsAll; i++) {
if( i === current) { continue; }
removeItem(i);
}