javascript - while 循环中的 if else 语句,其中 if else 语句确定 while 循环何时停止

标签 javascript if-statement while-loop

var userInput = prompt("type something with or without double spacing");
var errorSpaces = [];
var maxSpaceCount = [];
var doneOnce = 0;
var done = 0;
var size;
var tempArray = [0, 0];
while (done === 0) {
    if (doneOnce === 0) {
        for (var i = 0; i<size; i++) {
            size = userInput.length - 1;
            if (userInput.substr(i, 2) == "  ") {
            userInput.replace(userInput.substring(i, j), userInput[i]);
            errorSpaces.push(0);
            }   
        }
        doneOnce = 1;
        maxSpaceCount.push(0);
    } else if (doneOnce === 1 && tempArray.length != 1) {
        for (var i = 0; i<size; i++) {
            tempArray = [0];
            size = userInput.length - 1;
            if (userInput.substr(i, 2) == "  ") {
                userInput.replace(userInput.substring(i, j), userInput[i]);
                tempArray.push(0);
            }
            doneOnce = 2;
        }
        maxSpaceCount.push(0);
    } else {
    done = 1;
    }
}
alert("done");

它在第二个 for 循环处循环而不是结束。我知道这可能不是最好的方法,但是我怎样才能使“else if”起作用,以便当不再有双空格时,它将进入最后的 else ?

我试图通过迭代地用单个空格替换双空格,然后重新阅读以替换更多双空格(以前是三空格)等来消除任何多个空格。

最佳答案

如果您的目标是用单个空格替换任何双(或更多空格),那么代码太多了

尝试正则表达式

var userInput = prompt("type something with or without double spacing");
userInput  = userInput.replace(/\s{2,}/g, ' ');
alert("done");

虽然不太确定你想用 tempArray 做什么,因为它似乎没有意义。

<小时/>

编辑

似乎有一些迹象表明需要计算 2 个或更多空格出现的次数,因此使用下面的代码将为您提供计数。 || 位的原因是因为如果没有找到,它将返回 null,|| [] 会将 null 更改为空数组,因此它的长度将为零。 感谢@RobG

var countOfMultipleSpaces = (userInput.match(/\s{2,}/g) || []).length;

我确信,不用说,您必须在全部替换它们之前执行此操作

关于javascript - while 循环中的 if else 语句,其中 if else 语句确定 while 循环何时停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23643170/

相关文章:

Javascript for 循环表现奇怪

javascript - 联系表格提交两次

javascript - 无法从 Canvas 获取图像数据,因为 Canvas 已被跨源数据污染

if-statement - 为什么一个变量与多个值的不相等检查总是返回 true?

java - 以下 Java 库代码如何退出 while(true) 循环?

javascript - 如何为网络游戏建立点对点连接?

python 2.7 : How to identify unique string from string in pandas dataframe and print designated value in a specified column based on the result?

mysql - 仅当同一字段中的另一个值不存在时,如何才能在 MySQL 中显示该字段值? IF/ELSEIF 还是 CASE?

java - while循环中的异常处理

php - 停止 sql 查询更新每个循环中的所有列