跳过FOR循环中的多个元素,Javascript

时间:2015-05-07 05:32:24

标签: javascript arrays for-loop skip

我有一些文件内容我想使用javascript函数传递给我的服务器。在文件中,有许多空行或包含无用文本的行。到目前为止,我将每一行读作一个存储在数组中的字符串。

如何循环浏览多个行,例如第24,25,36,42,125行等内容。我可以将这些元素id放入数组并告诉我的for循环运行元素除了这些?

由于

4 个答案:

答案 0 :(得分:3)

你不能告诉你的for循环迭代所有,但跳过某些元素。它基本上只计算任何方向(简化),直到满足某个标准。

然而,你可以在你的循环中放置一个if来检查某些条件,如果条件满足,则选择不做任何操作。例如:

(下面的伪代码,小心输入错误)

for(var line=0; line < fileContents.length; line++) { 
    if(isUselessLine(line)) { 
        continue; 
    }
    // process that line
}

continue关键字基本上告诉for循环“跳过”当前迭代的其余部分并继续下一个值。

isUselessLine函数是你必须自己实现的,在某种程度上它返回true,如果具有给定亚麻的行对你没用。

答案 1 :(得分:0)

你可以使用这样的东西

    var i = 0, len = array1.length;
    for (; i < len; i++) {
        if (i == 24 || i == 25) {
            array1.splice(i, 1);
        }
    }

或者您可以拥有另一个数组变量,该变量包含需要从array1中删除的所有项目

答案 2 :(得分:0)

另一种方法:

var lines = fileContents.match(/[^\r\n]+/g).filter(function(str,index,arr){
    return !(str=="") && uselessLines.indexOf(index+1)<0;
});

答案 3 :(得分:0)

你可以尝试这不是太多的优点,但会很自然地做到这一点

<html>
<body>

<p>A loop which will skip the step where i = 3,4,6,9.</p>

<p id="demo"></p>

<script>
var text = "";
var num = [3,4,6,9];
var i;
for (i = 0; i < 10; i++) {
var a = num.indexOf(i);
if (a>=0) { 
continue; 
}
text += "The number is " + i + "<br>";
}
document.getElementById("demo").innerHTML = text;
</script>

</body>