我正在尝试编写一个程序,它接受任意数量的命令行参数,在本例中为字符串并反转它们,然后将它们输出到控制台。这是我目前所拥有的:
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
最佳答案
您需要对传入的每个 argv[n...]
值运行您的 reverseString()
函数。在正确应用 Array.prototype.splice 之后(2) 函数,删除数组索引 0 和 1(包含命令 (/path/to/node
) 和 /path/to/module/file.js
),您需要遍历数组中每个剩余的索引。
Array.prototype.forEach
方法对此非常理想,而不需要 for 循环或映射。下面是使用 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))
关于javascript - 从命令行解析多个参数 Node.js/js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54729727/