簡體   English   中英

使用Process.argv反轉字符串

[英]Reverse a String with Process.argv

我是Node.js的新手,我想知道如何通過在Node中鍵入函數來輸出函數的值。 因此,如果我要寫“ hello”,它將返回“ olleh”等。

我在理解如何在Node中運行功能以及如何使用process.argv時遇到問題。 我知道我需要獲取第二個值,但是如果我有多個值,我不確定該怎么做。

任何幫助將不勝感激。

 function reverseStr(str) { var newStr = ''; for (i=str.length-1; i >= 0; i--) { newStr+=str[i]; } return newStr; } console.log(reverseStr(process.argv[2])); 

好吧,第一件事是了解process.argv返回什么。 process.argv返回一個數組,其中前兩個參數通常是nodeyour_file_name.js ,因此要獲得這兩個命令之后的下一個參數,您必須將process.argv數組的第三個參數作為目標,您可以輕松地通過此代碼: process.argv[2]

在您的reverseStr函數中,似乎在for循環中,您將i分配為變量而不使用關鍵字var 這可能與程序的正確執行相抵觸,因此請進行編輯以使代碼本身更安全。

假設您的reverseStr函數現在正確,那么在命令行中要做的就是鍵入node your_file_name.js stringtoflip pilfotgnirts node your_file_name.js stringtoflip ,它應該返回pilfotgnirts

如果您有多個值,則可以查看大於2的process.argv索引並按以下方式運行腳本:

node test.js a b c

或者只看第二個參數,然后像這樣運行腳本:

node test.js "a b c"

無論如何,以下代碼將起作用:

function reverseString (s) {
    return s
    .split("") // convert string to array
    .reverse() // reverse array
    .join("")  // finally, convert array back to string
    ;
}

console.log(
    reverseString(
    process.argv
        .slice(2)  // remove executable (nodejs) and script (test.js)
        .join(" ") // convert array of arguments to string and restore spaces between them
    )
);

我把工作分開了,因為你想要一個功能。 但是,這可以全部在一行中完成:

const reversed_argv = process.argv.slice(2).join(" ").split("").reverse().join("");

我將使用forEach遍歷傳遞給腳本的參數。 就像是:

process.argv.slice(2).forEach(function(argument) {
  console.log(reverseStr(argument));
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM