Rechercher : dans
Par :

Tri d'un tableau Javascript

Dernière réponse le 29 déc 2007 à 01:28:47 christophe, le 19 fév 2003 à 14:56:20 
 Signaler ce message aux modérateurs

Bonjour,

Voilà, je stocke dans un tableau des chiffres (1,2,...,15,16) et, une fois le tableau rempli, j'utilise la méthode Javascript : Tableau.sort()

Malheureusement, cette méthode me trie mon tableau en comparant que les premiers chiffres des valeurs... ce qui donne :

1 , 10 , 11 , 12 , 2 , 3 , 31 , 32 , 4 , ...

Vous conviendrez que ce n'est pas tout à fait l'effet recherché... Si vous connaissez la solution à ce pb, merci de m'en toucher un mot.

> Christophe

Meilleures réponses pour « tri d'un tableau Javascript » dans :
Javascript - Modifier la hauteur (height) d'un élément HTML VoirPour modifier la hauteur d'un élément HTML en javascript, il suffit d'utiliser sa propriété de style "height". Pour cela vous pouvez y faire référence de la manière suivante : Si vous souhaitez connaître la hauteur (height) d'un bloc HTML, il...
Tri à bulles -récursivité- VoirVoici une procédure récursive qui permet de trier un tableau de n entiers en utilisant la méthode de tri à bulles : Procedure Tri_bulles (var t : TAB; n : integer); Var i, aux : integer; Function Trier (t : TAB; n : integer) : Boolean; ...
Pascal - Tri par insertion - Récursivité- VoirVoici une procédure récursive qui permet de trier un tableau de n entiers en utilisant la méthode de tri par insertion : Procedure Tri_Ins (Var t: TAB; n: integer); Var aux,i : integer; begin If n > 1 Then begin ...
Javascript - Les tableaux VoirIntroduction à la notion de tableau Les variables de Javascript ne permettent de stocker qu'une seule donnée à la fois. Or, étant donné qu'il est souvent utile de manipuler de nombreuses données, le concept de variable se révéle parfois...
Javascript - l'objet Array VoirLes particularités de l'objet Array L'objet Array est un objet du noyau Javascript permettant de créer et de manipuler des tableaux. Voici la syntaxe à utiliser pour créer une variable tableau : var x = new Array(element1[, element2, ...]); Si...
Javascript - Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle' On appelle structure conditonnelle les instructions qui permettent de tester si une condition est vraie ou non, ce qui permet notamment de donner de l'interactivité à vos scripts : Instruction...

1

pollux, le 19 fév 2003 à 16:00:35

C'est easy ton pb !!!!!


C'est parceque javascript considere tes chiffres comme des char !!!!

utilise la fonction parseInt quand tu fais tes comparaison et ca devrais marcher !

Répondre à pollux

2

fou2dodie, le 19 fév 2003 à 16:04:43

Ou alors tu écris 01, 02, 03,...09 au lieu de 1,2,3,....,9
ça marche aussi normalement

LMCT

All I know is I’m in love  
with someone who loves me too

Répondre à fou2dodie

3

pollux, le 19 fév 2003 à 16:09:33

C'est du bidouillage ca fou2dodie ;)

comment peux tu savoir que son tableau est limité a 99???

car si son tableau traite des nombre + grand... 100 sera considéré comme inférieur a 20 !!!!!

dou ta solution devient un vrai casse tete car il faut kil scan son tableau pour voir quel est le nombre comportant le + de chiffre et qu'ensuite il agisse en conséquence tout les nombres comportant moins de chiffre !!!!!

en gros -> cest a choppé un gros mal de tete !
;-)

Répondre à pollux

4

autogene31, le 28 déc 2007 à 23:32:30

<script language='javascript'>

var tab = new Array(5,3,1,4,2);
var memind;

// passer le tableau en parametre
function trieurInt(t)
{
var mem;
var tatrier = new Array();

for(y=0;y<t.length;y++) { tatrier[y] = t[y]; } // copie du tableau et pas de la reference !

for(j=0;j<tatrier.length-1;j++)
{
for(k=(j+1);k<tatrier.length;k++)
{
if(tatrier[j]>tatrier[k])
{
mem = tatrier[j];
tatrier[j]=tatrier[k];
tatrier[k]=mem;
}
}
}

return tatrier;
}



function main()
{
var res = "";
var ori = "";
var tabfin = trieurInt(tab);

ori = tab.toString();

res = tabfin.toString();

alert("ori: "+ori + "\n" + "res: "+res);
}

main();

</script>

// fin de ce que les anciens appelait le trie à bulles

+ une petite reference : http://fr.wikipedia.org/wiki/Tri_%C3%A0_bulles

Répondre à autogene31

5

autogene31, le 28 déc 2007 à 23:37:10

// fin de ce que les anciens !appelaient! le trie à bulles

désolé... // fin de ce que les anciens appelaient l'orthographe... ;-)

Répondre à autogene31

6

 autogene31, le 29 déc 2007 à 01:28:47

ENCORE UNE PETITE ERREUR MAIS QUI SERAIT FATALE !

ET Donc Fonction désormais OK !!!

function trieurInt(t)
{
var mem;
var tatrier = new Array();

for(y=0;y<t.length;y++) { tatrier[y] = parseInt(t[y]); } // important !!! => typer le contenu en int entier

for(j=0;j<tatrier.length-1;j++)
{
for(k=(j+1);k<tatrier.length;k++)
{
if(tatrier[j]>tatrier[k])
{
mem = tatrier[j];
tatrier[j]=tatrier[k];
tatrier[k]=mem;
}
}
}


return tatrier;
}

Répondre à autogene31
Collection CommentÇaMarche.net