320 votes

En passant un tableau comme un paramètre de fonction en JavaScript

Je voudrais appeler une fonction en utilisant un tableau comme paramètres:

 var x = [ 'p0', 'p1', 'p2' ];
call_me ( x[0], x[1], x[2] ); // i don't like it

function call_me (param0, param1, param2 ) {
    // ...
}
 

Existe-t-il un meilleur moyen de transmettre le contenu de x dans call_me ()?

Ps. Je ne peux pas changer la signature de call_me (), ni la façon dont x est défini.

Merci d'avance

447voto

KaptajnKold Points 2684

Cela fait exactement ce que vous voulez:

 var x = [ 'p0', 'p1', 'p2' ];
call_me.apply(this, x);
 

En savoir plus sur apply ici

122voto

Karl Johan Points 2068

Pourquoi ne passez-vous pas tout le tableau et ne le traitez-vous pas si nécessaire dans la fonction?

Ainsi:

 var x = [ 'p0', 'p1', 'p2' ]; 
call_me(x)
function call_me(params){
  for(i=0;i<params.length;i++){
    alert(params[i])
  }
}
 

44voto

plexer Points 2074

En supposant que call_me est une fonction globale, vous ne vous attendez pas à ce que cela soit défini.

 var x = ['p0', 'p1', 'p2'];
call_me.apply(null, x);
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X