我有一个条件数组 ARR,我想在一行中向其写入值
我尝试这样做
import * as readline from 'node:readline/promises';
import { stdin as input, stdout as output } from 'process';
const rl = readline.createInterface({input, output})
let arr =[]
console.log('Enter Values: ')
for (let i = 0; i < 5; i++) {
arr[i] = await rl.question('')
但是当我这样做时,我得到了逐行输入:
Enter Values:
1
A
2
B
我需要:
Enter Values: 1 A 2 B
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
readline用换行符分隔输入流,但您想用空格分隔它。下面的转换流可以实现这一点。请注意,它是与for wait (...) {}而不是for (...) { wait }一起使用的。var input = new stream.Transform({ readableObjectMode: true, transform(chunk, encoding, callback) { this.buffer = this.buffer ? Buffer.concat([this.buffer, chunk], this.buffer.length + chunk.length) : chunk; while (true) { var offset = this.buffer.indexOf(" "); if (offset === -1) break; this.push(this.buffer.toString("utf8", 0, offset)); while (this.buffer[offset + 1] === 0x20) offset++; this.buffer = this.buffer.slice(offset + 1); } callback(); } }); console.log('Enter Values: '); process.stdin.pipe(input); let arr = []; let i = 0; for await (var number of input) { arr[i] = number; i++; if (i >= 5) break; } console.log(arr);