使用Process.argv反转字符串

时间:2018-01-16 01:30:13

标签: javascript

我是Node.js的新手,我想知道如何通过在Node中键入来输出我的函数值。所以如果我要写'你好''它会回归' 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]));




3 个答案:

答案 0 :(得分:0)

嗯,首先要了解process.argv返回的内容。 process.argv返回一个数组,其中前两个参数通常为nodeyour_file_name.js,因此要在这两个命令之后获取下一个参数,您必须定位{{1的第三个参数数组,您可以通过此代码轻松引用:process.argv

process.argv[2]功能中,您似乎在reverseStr循环中将for指定为不使用关键字i的变量。这可能与您的程序的正确执行相冲突,因此可能编辑它以使代码本身更安全。

假设您的var函数现在是正确的,您在命令行中所要做的就是键入reverseStr,它应该返回node your_file_name.js stringtoflip

答案 1 :(得分:0)

如果您有多个值,您可以查看大于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("");

答案 2 :(得分:0)

我将使用forEach循环遍历传递给脚本的参数。像这样:

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