首先,我们要了解一下nodejs中的readline的用法(下图内容来自nodejs中文文档):
了解了以上内容之后,直接上模板。
基础模板:
const readline = require('readline')
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
})
// 每有一行输入触发一次 on 事件,调用一次回调函数
// 当前行的输入以字符串的形式作为参数传入回调函数中
rl.on('line', line => {
console.log(line)
console.log(line.trim().split(' '))
})
// 自测输入:
name age
sex hobby
// 自测输出:
name age
[ 'name', 'age' ]
sex hobby
[ 'sex', 'hobby' ]
进阶模板:
const readline = require('readline')
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
})
rl.on('line', handle)
let lineNum = 0
let temp = 0
const inputArr1 = []
const inputArr2 = []
function handle(line) {
lineNum++
if (lineNum === 1) {
temp = Number(line.trim())
console.log(`这是第一行, 下面共有${temp}行数据, 将以数组形式保存`)
} else {
inputArr1.push(line.trim())
inputArr2.push(line.trim().split(' '))
}
if (inputArr1.length === temp) console.log(inputArr1)
if (inputArr2.length === temp) console.log(inputArr2)
// if (lineNum === 2) ...
}
// 自测输入
3
name tom
age 20
sex male
// 自测输出
这是第一行, 下面共有3行数据, 将以数组形式保存
[ 'name tom', 'age 20', 'sex male' ]
[ [ 'name', 'tom' ], [ 'age', '20' ], [ 'sex', 'male' ] ]