??途W(wǎng)/賽碼網(wǎng)筆試JavaScript(Node)環(huán)境下如何處理輸入輸出

1. readline方法 - 官網(wǎng)示例

// 單行輸入
var readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
rl.on('line', function (line) {
    // write your code here
    var tokens = line.split(' ');
    console.log(parseInt(tokens[0]) + parseInt(tokens[1]));
});

1.1 單行輸入 - example

//字符串最后一個(gè)單詞的長(zhǎng)度
var readline = require("readline");
const r1 = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
r1.on('line', function (line) {
    //找到數(shù)組中最后一個(gè)空格
    var lastSpacebar = line.lastIndexOf(" ");
    //用splice獲取最后一個(gè)字符串
    var lastWord = line.slice(lastSpacebar + 1);
    console.log(lastWord.length);
});

1.2.1 多行輸入 - example1

//多行輸入
var readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
const lines = [];
rl.on("line", function(line) {
    //將輸入放到新建的空數(shù)組中
    lines.push(line);
    //判斷,如果輸入的行數(shù)等于某一值時(shí)
    if (lines.length === 2){
        //通過(guò)數(shù)組索引分別得到數(shù)組中每一行的數(shù)據(jù),并做相應(yīng)操作
        const num1 = lines[0].split(' ').sort(function(a,b) {return b-a;});
        const num2 = lines[1];        
        // console.log(num1);
        // console.log(num2);
        console.log(num1[num2-1]);
    }
});

1.2.2 多行輸入 - example2

//多行輸入
const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
var inputArr = [];
rl.on('line', function (input) {
    //將輸入放到新建的空數(shù)組中
    inputArr.push(input);
    //將輸入的數(shù)據(jù)轉(zhuǎn)換為數(shù)組
    var inputs = input.split(" ");
    //得到第一行的那個(gè)數(shù)(行數(shù))
    var nLine = +inputArr[0];
    //判斷,如果第一行輸入的數(shù)字(行數(shù))等于輸入的總行數(shù)
    if (inputArr.length == (nLine + 1)) {
        //截取第一行到最后一行數(shù)據(jù)(即:除了第一個(gè)數(shù)據(jù)行數(shù)之外的其他數(shù)據(jù))
        var arr = inputArr.slice(1);
        //這里打印的arr不包括第一行數(shù)字(行數(shù))
        console.log(arr);
        //這里打印的inputArr包括第一行數(shù)字(行數(shù))
        // console.log(inputArr);       
        inputArr = [];
        // console.log(inputArr);
    }
});

2. process方法


process.stdin.resume();
process.stdin.setEncoding("ascii")

var input = ""

process.stdin.on("data", function (data) {
    //將輸入的數(shù)據(jù)賦給input
    input += data;
    var chunk = data.slice(0, -2);
    if (chunk === '') {
        process.stdin.emit('end');
    }
})

process.stdin.on('end', function () {
    //將輸入的多行數(shù)據(jù)轉(zhuǎn)換為數(shù)組
    var arr = input.split("\n");
    //去掉數(shù)組的第一個(gè)數(shù)據(jù)
    arr.shift();
    var arrb = []
    //循環(huán)遍歷數(shù)組,將去重后的數(shù)據(jù)保存到新的數(shù)組arrb中
    for (var i = 0; i < arr.length; i++) {
        if (arrb.indexOf(arr[i]) == -1) {
            arrb.push(arr[i])
        }
    }
    //這里調(diào)用了API,排序,將得到的數(shù)組arrb排序并且轉(zhuǎn)換為字符串
    var str = arrb.sort(function (a, b) { return a - b; }).join('\n');
    console.log(str);
})
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,699評(píng)論 19 139
  • web漏洞原理(源碼通過(guò)code injection或者file upload獲得) SQL注入 Example ...
    JasonChiu17閱讀 2,940評(píng)論 0 7
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,737評(píng)論 0 5
  • 當(dāng)別的女嘉賓犯傻的時(shí)候,他毫不掩飾自己的一臉嫌棄,冷漠無(wú)語(yǔ)。 當(dāng)她犯傻的時(shí)候,他會(huì)一臉寵溺:你這個(gè)笨蛋。忍不住就要...
    Dear樂(lè)樂(lè)閱讀 412評(píng)論 0 1
  • 終于在刷微博的時(shí)候發(fā)現(xiàn)了這么有用的App,一直喜歡用文字記錄些情緒,生活或者別的,無(wú)奈生活節(jié)奏太快,筆記本總是丟三...
    梓童_Anne閱讀 367評(píng)論 0 0

友情鏈接更多精彩內(nèi)容