Bonjour à tous,

J'ai un petit soucis technique sur le passage par référence d'un tableau que je passe en paramètre de fonction.

Ce que je voudrais faire : c'est modifier un tableau grâce à une fonction et garder les modifications dans le reste du script. Mais je n'obtiens pas le résultat du tableau modifié.

Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
var aParamG0=new Array();
aParamG0[0]=1;
aParamG0[1]=11;
aParamG0[2]=12;
aParamG0[3]=13;
aParamG0[4]=15;
aParamG0[5]=16;
 
function changetableau (montableau)
{
	for(i=0; i<montableau.length; i++)
	{
		alert(montableau[i]);
	}
	montableau=new Array();
	montableau[0]=0;
	montableau[1]=1;
	montableau[2]=2;
}
changetableau (aParamG0);
for(i=0; i<aParamG0.length; i++)
{
	alert(aParamG0[i]);
}
Dans tous les cas, j'obtiens 1,11,12,13,15,16 alors que j'aimerais obtenir 1,11,12,13,15,16 puis 0,1,2.

Je remarque que si je mets montableau=new Array(); en commentaire, je récupère bien les modifications, pour les 3 premières lignes.
Donc ca vient de la réinitialisation du tableau, le pointeur perd la boule.
Comment puis je vider "proprement" et de manière optimisée mon tableau, sachant que je peux avoir des tableaux qui ont plusieurs milliers de lignes.

Merci d'avance