[英]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.