1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| // tableau donnees resultats
var data = [];
// les multiplicateurs
var multi = {
'days' : 60*24,
'hours' : 60,
'mn' : 1
};
// chaine de test
var chaine = '2hours,10mn,4days,15mn,13days,4hours';
// insertion d'une virgule entre le nombre et l'unite
chaine = chaine.replace(/([d||h||m])/g, ",$1");
// recup sous forme tableau
var tab = chaine.split(',');
// c'est parti
var i, k, nb;
for( i = k = 0, nb = tab.length; i < nb; k++){
data[k] = {};
data[k].valeur = tab[i++];
data[k].unite = tab[i++];
// calcul cle de tri en minute suivant unite
data[k].time = data[k].valeur * multi[data[k].unite];
}
// tri du tableau ordre croissant
data.sort( function( a, b){
if( a.time > b.time) return 1;
if( a.time < b.time) return -1;
return 0;
});
// affichage pour voir
for( i in data){
document.write( data[i].valeur, data[i].unite, '-> clé de tri = ', data[i].time , '<br>');
} |
Partager