Salut la communauté, je galère sur un truc tous bête.
J'ai un tableau js monté de tel maniere :
Je remarque que le tableau (clef numerique ou alpha) est trier automatiquement en ASC (meme si c'est dans le désordre, il me le réordonne tous seul)
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 var aElemPos = []; $('.elem').each(function(){ var sIdElem = $(this).attr("id"); var xIdElem = sIdElem.split("_"); var iIdElem = parseInt(xIdElem[3]); if(iIdElem<20000) { var sElemFrom = "header"; }else if(iIdElem>30000) { var sElemFrom = "content"; }else{ return true; } var iPgN = parseInt(xIdElem[1]); var iPzT = $(this).position().top; var iPzL = $(this).position().left; if(typeof aElemPos[sElemFrom] == "undefined") { aElemPos[sElemFrom] = []; } if(typeof aElemPos[sElemFrom][iPgN] == "undefined") { aElemPos[sElemFrom][iPgN] = []; } if(typeof aElemPos[sElemFrom][iPgN][iPzT] == "undefined") { aElemPos[sElemFrom][iPgN][iPzT] = []; } if(typeof aElemPos[sElemFrom][iPgN][iPzT][iPzL] == "undefined") { aElemPos[sElemFrom][iPgN][iPzT][iPzL] = []; } aElemPos[sElemFrom][iPgN][iPzT][iPzL] = sIdElem; });
Loop de sortie visuel :
Sortie en console log :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 for(var i in aElemPos) { // header or content for(var j in aElemPos[i]) { // page for(var k in aElemPos[i][j]) { // top for(var l in aElemPos[i][j][k]) { // left console.log(i+" | Page "+j+" | Top "+k+" | Left "+l); } } } }
Au départ ce n'est pas dans cette ordre mais il me le trie niquel a chaque niveau en ASC.
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 content | Page 1 | Top 200 | Left 200 content | Page 1 | Top 200 | Left 560 content | Page 1 | Top 260 | Left 200 content | Page 2 | Top 188 | Left 188 content | Page 2 | Top 360 | Left 188 header | Page 1 | Top 0 | Left 0 header | Page 1 | Top 0 | Left 580 header | Page 1 | Top 60 | Left 400 header | Page 1 | Top 140 | Left 0 header | Page 1 | Top 180 | Left 0 header | Page 2 | Top 0 | Left 0 header | Page 2 | Top 0 | Left 580 header | Page 2 | Top 60 | Left 400 header | Page 2 | Top 140 | Left 0 header | Page 2 | Top 180 | Left 0
Ma question : Comment faire pour inversé totalement le tableau ? Ou au pire, comment le parcourir en arriere pour que, exemple, la première sortie soit "header | Page 2 | Top 180 | Left 0" (la derniere de la sortie si dessus).
Merci les gars si vous avez une idée.
Georges.
Partager