[英]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
返回一個數組,其中前兩個參數通常是node
和your_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.