首页 > 解决方案 > javascript 的效果不支持单独的行

问题描述

我有这些代码在 alpha 变量中循环,然后在预期的字符处停止。

const alpha = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', ' ', '.', ',', '\''];
var progress = 0;
var output = ''
const chalk = require('chalk');
const fs = require('fs');
var text = fs.readFileSync("text.txt").toString()


function sleep(milliseconds) {
    const date = Date.now();
    let currentDate = null;
    do {
        currentDate = Date.now();
    } while (currentDate - date <
        milliseconds);
}
function effect() {
    console.time("Time Anticipated ")
    while (text != output) {
        var randomNums = Math.floor(Math.random() * alpha.length)
        if (alpha[randomNums] == text[progress]) {
            output += text[progress]
            console.log(chalk.red(output))
            progress++
            sleep(20)
        } else {
            console.log(chalk.red(`${output}${alpha[randomNums]}`))
            sleep(1.2)
        }
        console.clear()
    }

    console.log(chalk.green(output))
    console.timeEnd("Time Anticipated ")
}
effect()

还有一个文本文件正在被读取到文本变量中:

如果此文件已被 JavaScript 读取,则这是一个测试文本。
现在这是一个测试该文件是否已成功通过 console.log。

行的第二个文本没有被正确读取,因此代码被卡在一个继续循环中。有什么建议吗?

标签: javascriptnode.js

解决方案


将换行符添加到您的列表中\r \n

const alpha = [ ..., '\r', '\n'];

作为旁注,setTimeout会给你一个不忙的等待。


推荐阅读