前端笔试第一坑:nodejs输入输出(一):
最近参加了一些线上笔试。但是js居然没有类似于其他语言的输入输出流,怎么 办,怎么办。node不就是用的js吗?所以只用学会标准输入输出才可以解题的。下面总结几种方法,可以当作解题模板,直接套就可以了。
一般题的简单模板
var readline = require('readline');
rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on('line', function(data) {
// 获取输入
var inputs = data.trim().split(' ');
// 处理
var result = deal(inputs);
// 输出结果
console.log(result);
});
function deal(inputs) {
var result = '';
// dosomething
return result;
}
经典例子:
根据输入的字符串不同,对应不同输出
var readline = require('readline');
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
rl.setPrompt('Test> ');
rl.prompt();
rl.on('line', function(line) {
switch (line.trim()) {
case 'copy':
console.log("复制");
break;
case 'hello':
console.log('world!');
break;
case 'close':
rl.close();
break;
default:
console.log('没有找到命令!');
break;
}
rl.prompt();
});
rl.on('close', function() {
console.log('bye bye!');
process.exit(0);
});
第一行为下一行输入元素的个数(输入一行):求一个数组中的最大值与最小值
输入描述:第一行为数组元素个数,第二行为数组元素
输出描述:最大值、最小值空格隔开
实例:
5 //输入N个数的数量
12 18 5 20 10 //N个数
20 5 //返回结果
var readline = require('readline');
var rl = readline.createInterface({
input:process.stdin,
output:process.stdout,
});
var num = 0;
rl.on('line',function(input){
if(num==0){
num = input.trim();
}
else{
var iptArr = input.split(' ');
if(iptArr.length==num){
var maxNum = Math.max.apply(null,iptArr);
var minNum = Math.min.apply(null,iptArr);
var result = maxNum + ' ' + minNum;
console.log(result);
return result;
}
}
})
网友评论