我是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]));

答案 0 :(得分:0)
嗯,首先要了解process.argv
返回的内容。 process.argv
返回一个数组,其中前两个参数通常为node
和your_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));
});