nodejs打印除第一个索引之外的所有元素

时间:2016-06-24 20:16:45

标签: arrays node.js indexof

在NodeJS(最新)中,我可以打印

console.log(args[0])
console.log(args[1])
console.log(args[2])

在我的情况下,我打印这些参数索引变量的函数是使用NodeJS child.spawn(command,args)方式,即用户可以传递1,2或5或N否。论点。由于我不知道用户可以设置多少,我无法为该N号编写console.log()行代码。个别指数。

如何打印除index args [0]以外的所有参数?

索引args [1]包含命令名称,我可以打印。 索引args [2]以后,可能包含args [2] =“ - c”,args [3] =“param1”,args [4] =“paramX paramY”等,具体取决于用户如何将参数推送到args在调用打印console.log行的函数之前,在.js文件中使用数组。

我想打印输出,如: args [0] = / usr / bin / bash args [XXX] = -c,param1,param2,param3 param4,param5等等等等

2 个答案:

答案 0 :(得分:0)

如果我理解正确,你正在寻找这些方面的东西:

// wrap in function to mimic the arguments object
function execute() {

  // declare a place to store the arguments
  var result = []
  
  // iterate through each argument
  Array.from(arguments).forEach((value, key) => {
    // skip the second key
    if (key > 0) {
      // store each argument in the result array
      result.push(value)
    }
  })

  // console log the result array as multiple arguments
  console.log.apply(null, result) // -> /usr/bin/bash -c param1 param2 param3
}

// mock command
execute('/usr/bin/bash', 'command', '-c', 'param1', 'param2', 'param3')

我希望这有帮助!

答案 1 :(得分:0)

正如我在评论中所说,这样的事情就是你想要的。



function func(...args){
  args.forEach((el, i)=>i != 1 && console.log(el));
};

func('/usr/bin/bash', 'Something not used', '-c', 'param1', 'param2', 'param3');




如果您正在使用arguments变量:



function func(){
  // Equivalent to [...arguments]
  Array.from(arguments).forEach((el, i)=>i != 1 && console.log(el));
};

func('/usr/bin/bash', 'Something not used', '-c', 'param1', 'param2', 'param3');