Bonjour,
J'ai un tableau (Array) qui contient les éléments suivants :
Je duplique ce tableau dans un autre Array qui s'appelle tabF et j'utilise la fonction sort pour trier mon tableau:
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 récupère donc en sortie les valeurs suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part tabF.sort();
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 tabF[0]=111; tabF[1]=111; tabF[2]=340; tabF[3]=480; tabF[4]=481;
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"
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; }).
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é):
Comme tabD[1] et tabD[4] ont la même valeur, j'obtiens une fois que le traitement est fini :
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
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 !
Partager