在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等等等等
答案 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');