Bonjour,

J'ai un tableau (Array) qui contient les éléments suivants :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
tabD[0]=340;
tabD[1]=111;
tabD[2]=481;
tabD[3]=480;
tabD[4]=111;
Je duplique ce tableau dans un autre Array qui s'appelle tabF et j'utilise la fonction sort pour trier mon tableau:
Je récupère donc en sortie les valeurs suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
tabF[0]=111;
tabF[1]=111;
tabF[2]=340;
tabF[3]=480;
tabF[4]=481;
Je souhaiterai pouvoir mémoriser le changement d'indice qui s'est effectué, j'effectue donc la boucle suivante :

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
 
tab_indices =  new Array();
 
k=0;
while(k!=nb_notices+1){ //nb_notices correspond à la longueur de mes tableaux
	j=0;
	while(j!=nb_notices+1){
		if(tabF[j]==tabD[k]){
			//Si on trouve un élément qui est le même dans les tableaux tabD et tabF on mémorise l'indice
			tab_indices[j] = k;
			alert("tab_indices[j] = "+tab_indices[j]+" k = "+k+" j = "+j);
		}
		j=j+1;
	}
	k=k+1;
}
NB : J'utilise le Javascript dans des conditions un peu spéciales, je ne peux pas utiliser de boucles for (à cause du symbole "<" ou ">"), j'utilise donc des boucles while (je sais que ça fait pas très "pro" ).
Je ne peux pas utiliser non plus le PHP. Il me faut une solution 100% Javascript.

Après ce traitement, j'obtiens le résultat suivant (grâce à l'alert que j'ai placé):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
tab-indices[j] = 0 , k=0 , j=2
tab-indices[j] = 1 , k=1 , j=0
tab-indices[j] = 1 , k=1 , j=1
tab-indices[j] = 2 , k=2 , j=4
tab-indices[j] = 3 , k=3 , j=3
tab-indices[j] = 4 , k=4 , j=0
tab-indices[j] = 4 , k=4 , j=1
Comme tabD[1] et tabD[4] ont la même valeur, j'obtiens une fois que le traitement est fini :
tab-indices[0] = 4 et tab-indices[1] = 4 alors que je devrais avoir :
tab-indices[0] = 1 et tab-indices[1] = 4 (ou inversement, peu m'importe)

Mais toutes les valeurs de tab-indices doivent être différentes.

En fait, je dois mémoriser ces changements d'indices car j'ai une trentaine d'autres tableaux (Array) à mettre à jour selon le tri qui a été effectué.
Mon problème paraît simple au premier abord, mais je ne vois pas trop comment avoir une solution. Je ne connais pas à priori le nombre d'élément qui seront en double, triple ou même quadruple dans mon tableau. Et mon tri marche nickel si il n'y a pas de doubles dans le tableau...

Toute aide est la bienvenue !