Bonjour à tous

voila mon petit souci,

J'ai un tableau de type:

nuage,6.666666666666667
mots,6.666666666666667
cristal,6.666666666666667
autriche,26.666666666666668
dell,6.666666666666667
accrocher,6.666666666666667
stage,13.333333333333334
police,6.666666666666667
france,6.666666666666667
clavier,6.666666666666667
smartphone,6.666666666666667

Je veux le trier par ordre décroissant.

Quand j'exécute ceci:

function compare(a, b) {
    return b - a;
}
var list =new Array();
for (var index in newArray){
     list.push(new Array(index, (newArray[index]/words.length)*100));
}
list.sort(compare);

J'obtiens ce tableau:

smartphone,6.666666666666667
clavier,6.666666666666667
france,6.666666666666667
police,6.666666666666667
stage,13.333333333333334
accrocher,6.666666666666667
dell,6.666666666666667
autriche,26.666666666666668
cristal,6.666666666666667
mots,6.666666666666667
nuage,6.666666666666667

Je constate qu'il n'est pas trier convenablement.

Une petite aide ne serait pas de refus :)

Merci

2 réponses


Orodan
Réponse acceptée

Bonjour,

Tout d'abord, je pense que tu te simplifierais beaucoup la vie en utilisant un tableau d'objets plutôt que d'enchaîner tableau sur tableau comme tu le fais.

Ensuite, étant donné que les éléments de ton tableau sont eux-mêmes des tableaux, tu ne peux pas les comparer simplement avec l'opérateur '-'. Dans ton cas, la comparaison devrait ressembler à quelque chose comme ça plutôt :

function compare (a, b) {
return a[1] - b[1];
}

J'espère que cela t'aideras :)

Weezy
Auteur

Merci pour ton aide Orodan ;)