从命令行Node.js / js解析多个参数

时间:2019-02-17 02:56:50

标签: javascript arrays node.js command-line

我正在尝试编写一个程序,该程序接受任意数量的命令行参数,在这种情况下,使用字符串并将其取反,然后将其输出到控制台。这是我到目前为止的内容:

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

1 个答案:

答案 0 :(得分:1)

您需要在传入的每个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))

这是我从终端运行以下代码: enter image description here