繁体   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