У меня есть несколько задач, в основном сценарий CLI, который принимает x строк, и на основе указанных строк выполняет некоторые вычисления.
Например:
Ввод:
3 // number of iterations to do something
ATCCGCTTAGAGGGATT // first string
GTCCGTTTAGAAGGTTT // second string
// 2nd iteration starts
abcdefghijklmnopqrstuvwxyz
bcdefghijklmnopqrstuvwxyza
// 3rd iteration starts
abcdefghijklmnopqrstuvwxyz0123456789
abcdefghijklmnopqrstuvwxyz0123456789
Вывод:
ATCCGCTTAGAGGGATT // first string
GTCCGTTTAGAAGGTTT // second string
*....*.....*..*.. // visual marker of differences between the two strings(*)
abcdefghijklmnopqrstuvwxyz
bcdefghijklmnopqrstuvwxyza
**************************
abcdefghijklmnopqrstuvwxyz0123456789
abcdefghijklmnopqrstuvwxyz0123456789
....................................
Что я пробовал:
const rl = require('readline').createInterface({
input: process.stdin,
output: process.stdout,
prompt: ''
})
let numberOfTests = 0;
let firstText = '';
let secondText = '';
let differences = '';
rl.prompt();
rl.on('line', (line: any) => {
let loop = 0;
numberOfTests = line;
firstText = line;
secondText = line;
calculateDifferences(firstText, secondText); // basic function that loops through the arrays and makes the visual marker.
loop ++;
if (loop === numberOfTests) {
rl.close();
}
}).on('close', () => {
console.log('Have a great day!');
process.exit(0);
});
Основная проблема, с которой я сталкиваюсь, заключается в том, что я не могу отделить входной поток друг от друга.К тому времени, когда мы перейдем ко второму тексту, каждая переменная будет равна вводу I в третий раз.
Как вы можете отделить входы друг от друга?
Документация узла не так подробно об этом. Или я не могу понять это правильно.