从命令行Node.js / js解析多个参数
我正在尝试编写一个程序,它接受任意数量的命令行参数,在这种情况下,字符串并将它们反转,然后将它们输出到控制台。这是我到目前为止:
let CL = process.argv.slice(2);
let extract = CL[0];
function reverseString(commandInput) {
var newString = "";
for (var i = commandInput.length - 1; i >= 0; i--) {
newString += commandInput[i];
}
return console.log(newString);
}
let call = reverseString(extract);
我无法找到一种方法来使这个工作在命令行中的多个参数,如:
node reverseString.js numberOne numberTwo
这将产生如下输出:
enOrebmun owTrebmun
但它适用于单个参数,例如:
node reverseString.js numberOne
回答如下:
你需要在传入的每个reverseString()
值上运行你的argv[n...]
函数。正确应用Array.prototype.splice(2)函数后,删除数组索引0和1(包含命令(/path/to/node
)和/path/to/module/file.js
),你需要迭代数组中的每个剩余索引。
Array.prototype.forEach
方法非常适合这种方法,而不需要for循环或map。下面是使用OP代码,是所需输出所需的最小程序(没有太多重构)。
let CL = process.argv.slice(2);
function reverseString(commandInput) {
var newString = "";
for (var i = commandInput.length - 1; i >= 0; i--) {
newString += commandInput[i];
}
return console.log(newString);
}
CL.forEach((extract)=>reverseString(extract))
这是我从终端运行此代码:
从命令行Node.js / js解析多个参数
我正在尝试编写一个程序,它接受任意数量的命令行参数,在这种情况下,字符串并将它们反转,然后将它们输出到控制台。这是我到目前为止:
let CL = process.argv.slice(2);
let extract = CL[0];
function reverseString(commandInput) {
var newString = "";
for (var i = commandInput.length - 1; i >= 0; i--) {
newString += commandInput[i];
}
return console.log(newString);
}
let call = reverseString(extract);
我无法找到一种方法来使这个工作在命令行中的多个参数,如:
node reverseString.js numberOne numberTwo
这将产生如下输出:
enOrebmun owTrebmun
但它适用于单个参数,例如:
node reverseString.js numberOne
回答如下:
你需要在传入的每个reverseString()
值上运行你的argv[n...]
函数。正确应用Array.prototype.splice(2)函数后,删除数组索引0和1(包含命令(/path/to/node
)和/path/to/module/file.js
),你需要迭代数组中的每个剩余索引。
Array.prototype.forEach
方法非常适合这种方法,而不需要for循环或map。下面是使用OP代码,是所需输出所需的最小程序(没有太多重构)。
let CL = process.argv.slice(2);
function reverseString(commandInput) {
var newString = "";
for (var i = commandInput.length - 1; i >= 0; i--) {
newString += commandInput[i];
}
return console.log(newString);
}
CL.forEach((extract)=>reverseString(extract))
这是我从终端运行此代码: