Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从用户';用JavaScript中的readline()在终端中输入?(无网页)_Javascript_Arrays_Vector_Readline - Fatal编程技术网

如何从用户';用JavaScript中的readline()在终端中输入?(无网页)

如何从用户';用JavaScript中的readline()在终端中输入?(无网页),javascript,arrays,vector,readline,Javascript,Arrays,Vector,Readline,从一个程序中,用户在终端中给出一些值,然后我处理这些信息,如: const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); rl.question("number 1: ", function(one) { rl.question("

从一个程序中,用户在终端中给出一些值,然后我处理这些信息,如:

const readline = require("readline");
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.question("number 1: ", function(one) {
    rl.question("number 2: ", function(two) {
        rl.question("number 3: ", function(three) {
            if (one > two && one > three) {
                console.log("bigger: " + one);
            } else if (two > one && two > three) {
                console.log("bigger: " + two);
            } else {
                console.log("bigger: " + three);
            }
            rl.close();
        });
    });
});

rl.on("close", function() {
    console.log("\nBYE BYE !!!");
    process.exit(0);
});
我想做一些类似的事情:使用readline()从终端获取用户的输入,并填充一个数组[10],类似于:

const readline = require("readline");
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

var vector = new Array(10);


for (i = 0; i < vector.length; i++) {
    rl.question("value " + (i+1) + ": ", function(one) {
        temp = parseInt(one);
        vector.splice(i, 0, temp);
    });
    if (i = vector.length) {
        rl.close();
    };
};

rl.on("close", function() {
var biggest = Math.max.apply(null, vector);
var smallest = Math.min.apply(null, vector);
console.log("biggest " + biggest + " and smallest " + smallest);
process.exit(0);
});
const readline=require(“readline”);
const rl=readline.createInterface({
输入:process.stdin,
输出:process.stdout
});
var向量=新数组(10);
对于(i=0;i
任何提示?

.question()
基本上是异步的。它给出了一个回调(在将来的某个未知时间执行)并立即返回。因此,代码的其余部分不用等待就可以开始工作

一种可能的处理方法:

const readline=require(“readline”);
const rl=readline.createInterface({
输入:process.stdin,
输出:process.stdout
});
常量向量=新数组(10);
const handleResults=函数(索引、向量、答案){
//处理答案
向量[索引]=parseInt(答案);
//开始下一个问题
索引++;
if(索引<向量长度){
//问下一个问题
rl.question(“value”+index+“:”,handleResults.bind(this,index,vector));
}
否则{
//我们结束了,把事情结束
rl.close();
}
};
rl.on(“关闭”,函数(){
var max=Math.max.apply(空,向量);
var minimest=Math.min.apply(空,向量);
log(“最大的”+最大的+”和最小的“+最小的”);
进程退出(0);
});
//开始提问
rl.question(“值0:”,handleResults.bind(this,0,vector));

另一个(可能更好的)选择是使用承诺。不过,我会把这个问题留给另一位回答者。

它有效吗?有什么问题吗?问题是什么?Stackoverflow更多的是关于故障排除。更适合于改进工作代码。@Ourobrus“如何用JavaScript中的readline()从终端中的用户输入填充数组?”听起来OP是在要求代码,而不是要求正确改进工作代码。代码审查也是一个离题的话题。很抱歉给大家带来了困惑,事实上,了解我的代码中的错误以及如何使其正常工作是两者兼而有之的。