2016-06-24 3 views
0

В NodeJS (последний), я могу напечататьnodejs элементов массива печати все, кроме первого индекса

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

В моем случае, функция, где я печатаю эти индексные переменные аргументы использует NodeJS ребенок. spawn (команда, args), т.е. пользователь может передать 1, 2 или 5 или N нет. аргументов. Поскольку я не знаю, сколько пользователей может установить, я не могу закодировать строки console.log() для этого N нет. отдельных индексов.

Как распечатать все аргументы, кроме index args [0]?

Index args [1] содержит имя команды, которое я могу распечатать. Index args [2] onwards, могут содержать args [2] = "-c", args [3] = "param1", args [4] = "paramX paramY" и т. Д. И т. Д., В зависимости от того, как пользователь толкнул аргументы args в вашем .js-файле перед вызовом функции, которая печатает строки console.log.

Я хочу напечатать вывод, как: арг [0] =/USR/BIN/Баш арг [XXX] = -с, param1, param2, param3 param4, param5 и т.д., и т.д., и т.д.

+0

Что вы пробовали до сих пор? Имеет ли args.forEach ((el, i) => {if (i! = 0) {console.log (el)}}) недостаточно? –

+0

@JoseHermosillaRodrigo OP пытается пропустить индекс 1, а не 0. –

+0

@ m-a-r-c-e-l-i-n-o небольшая ошибка, поскольку он сказал, что первый элемент, который я сомневался, был исправлен в anwser. –

ответ

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')

Я надеюсь, что это помогает!

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');

Смежные вопросы