cs_nicoferra
Messages postés18Date d'inscriptionmercredi 26 mars 2008StatutMembreDernière intervention 2 février 2010
-
17 avril 2009 à 14:16
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 2011
-
17 avril 2009 à 16:07
Bonjour, j'ai un problème avec la fonction sort().
je cherche à classer par ordre décroissant la colonne [j][3] du tableau ci-dessous. or quoi que je fasse, elle est toujours en ordre croissant
Ce qui est bizarre c'est quand je les fait 3 premières colonnes l'ordre est toujours croissant, quand je le fait sur la 4ème colonne, il est décroissant.
j'ai également essayer en changeant a-b par b-a dans la fonction et ca ne change rien
infos supplemantaires :
mes valeurs sont de type décimale (il y en a 1001 :
6.976
90.688
104.63999999999999
118.59199999999998
.....
La 4ème colonne (celle qui est toujours en décroissant) est la seule caclulée en fonction des autres colonnes
Merci pour votre aide
<script type='text/javascript'>
var column_lengh=150;
var column_dead_volume=1744;
var dm=1.18917640398834*Math.pow(10,-9);
var particul_diameter=5;
var u = new Array();
var j=0;
for (i=0.01; i<=20; i+=0.02)
{
j++;
u[j]= new Array();
u[j][0]=i;
u[j][1]=column_dead_volume*i/column_lengh*60;
u[j][2]=(i*particul_diameter*0.000000001)/dm;
u[j][3]=(Math.pow(u[j][2],0.33)*1+3/u[j][2]+0.1*u[j][2])*particul_diameter;
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 17 avril 2009 à 15:07
Bonjour,
pas tout à fait : tri en caractères pas en valeur
function trinbr(a,b)
{ return a-b; }
var tri=new Array(2,8.99,4, 99.51,10,8.97,25,99.3, 8.96,24,100,12);
tri.sort(trinbr);
for ( var n=0;n<tri.length;n++)
{ document.write(tri[n]+" "); }
cs_nicoferra
Messages postés18Date d'inscriptionmercredi 26 mars 2008StatutMembreDernière intervention 2 février 2010 17 avril 2009 à 15:43
Oui j' ai essayé également sur la 4 ème colonne ([j][3]
mais la fonction n'a aucun effet non plus.
C'est ce que j'explique dans mon premier post : les 3 premières sont
toujours croissante (que ce soi avec a-b ou b-a) et la quatrième est
toujours décroissante.
En fait j'ai besoin de faire varier l'ordre de tri pour trouver le plus petit élément ou le plus grand.
En fait sur la 4ème colonne par exemple ça ne tri même pas du tout comme tu peux le voir sur les premières valeurs
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 17 avril 2009 à 15:55
0.01=358.5310536720241
0.03=121.50563637459994
0.05=74.4442380474162
19.989999999999664=63.78412520043727
19.969999999999665=63.73513041952226
19.949999999999665=63.68613121269326
19.929999999999666=63.637127573016684
19.909999999999666=63.588119493541804
19.889999999999667=63.53910696730068
19.869999999999667=63.490089987308124
19.849999999999667=63.441068546561624
19.829999999999668=63.392042638041346
19.80999999999967=63.34301225470991
19.78999999999967=63.29397738951259
19.76999999999967=63.24493803537705.....
semble correct si on trie sur 3
non ?
<script type='text/javascript'>
var column_lengh=150;
var column_dead_volume=1744;
var dm=1.18917640398834*Math.pow(10,-9);
var particul_diameter=5;
var u = new Array();
var j=0;
for (i=0.01; i<=20; i+=0.02)
{ j++;
u[j]= new Array();
u[j][0]=i;
u[j][1]=column_dead_volume*i/column_lengh*60;
u[j][2]=(i*particul_diameter*0.000000001)/dm;
u[j][3]=(Math.pow(u[j][2],0.33)*1+3/u[j][2]+0.1*u[j][2])*particul_diameter;
}
u.sort(function(a,b){return b[3]-a[3]});
for ( var n=0;n
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 17 avril 2009 à 16:07
Bonjour,
Dans un tableau à plusieurs dimensions
lorsque l'on fait un tri seul la première entrée est triée.
faites l'essai
avec ce bout de code
<html>
<head>
<script type= "text/javascript">
//-- la fonction
function Sup(a, b){
return(( a > b)? -1 :1);
}
//-- l'init
var Tab = new Array();
Tab[0] = [1,10,100,1000];
Tab[1] =
[2,20,200,2000];
Tab[2] = [3,30,300,3000];
Tab[3] = [4,40,400,4000];
//-- le tri Tab.sort( Sup);
//-- l'affichage alert( Tab);
</script>
</head>
</html>
si l'on veut trier un tableau particulier il faut
le préciser
exemple essayez avec
Tab[3].sort( Sup);
;O)