如何从用户';用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是在要求代码,而不是要求正确改进工作代码。代码审查也是一个离题的话题。很抱歉给大家带来了困惑,事实上,了解我的代码中的错误以及如何使其正常工作是两者兼而有之的。