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 :
Trier un tableau sans utiliser la fonction sort VoirTrier un tableau sans utiliser la fonction sort D'abord on initialise une variable $max avec la 1ère valeur de tableau. Ensuite on va faire une boucle tant que le tableau contient encore des éléments. C'est avec la fonction splice qui a le rôle...
Inverser les éléments d'un tableau -Récursivité- VoirVoici une procédure récursive qui permet d’inverser les éléments d’une partie d’un tableau compris entre la position p et n : Procedure Inverser (Var t : Tab; p, n : Integer); Var aux : Real; Begin If p < n Then ...
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 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 - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. En Javascript, les noms de variables peuvent être aussi long que l'on désire,...

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