在线编程答题使用javascript方式时通过readline插件获取输入内容

公司组织编程比赛时,想着先去公司内容code平台上刷些算法题提升下,待选择回答语言为javascript时,发现没办法获取输入参数(肯定比不上leetcode,它会直接把入参放到函数里)。所以就只能另外想办法看如何读取输入内容,这是发现nodejs有个插件readline是真的好用,有兴趣的同学可以去看官网介绍。

readline用法说明

用法非常简单,示例说明如下:

//第1步:引入readline模块
const readline = require('readline');
//第2步:创建接口实例
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});
/**
* 第3步:获取每行输入流
* 每当输入流接收到行尾输入(\n、\r或\r\n)时,就会发出“line”事件。
**/
rl.on('line', (input) => {
  console.log(`用户输入的一行内容: ${input}`);
  /**
  * tips:这里的input是string类型的,需自行解析数据
  * 比如输入: 2 3 4   
  * 目标:想输出三个数之和
  * 处理方式:let sum = input.split(" ").reduce((sum, val)=>sum +=parseInt(val),0);
  * 说明:1. split()是根据“空格”分割,将字符串转成数组['2', '3', '4'];
  * 2. reduce()是对数组['2', '3', '4']求和,其中parseInt是将数组里每项转变成“数值”类型
  **/
}).close('close', ()=>{
  console.log(`接口结束了,这里也可以输出想输出的内容`)
});
示例

注:以下前端数据处理方式非最优,仅是想展示下readline如何实际用起来
题目:输入2行数字,求所有输入内容的和

输入:
1 3 4
10 11 13 14

预期结果:56

编码答题:

const readline = require('readline');
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});
let nums = []; //这里存放所有行输入数值内容
rl.on('line', (input) => {
  //将每行input内容转成数值集合
  let inputArr = input.split(" ").map(val=>parseInt(val));
  
//将每行数值集合合并到nums里,形成一个大集合
nums = nums.concat(inputArr);
}).close('close', ()=>{
  	//计算nums数组之和
  	let Sum = nums.reduce((sum, val)=>sum +=val,0);
  	console.log(`输出计算结果:${Sum }`);//56
  });
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值