我有一些文件内容我想使用javascript函数传递给我的服务器。在文件中,有许多空行或包含无用文本的行。到目前为止,我将每一行读作一个存储在数组中的字符串。
如何循环浏览多个行,例如第24,25,36,42,125行等内容。我可以将这些元素id放入数组并告诉我的for循环运行元素除了这些?
由于
答案 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>