Maison >interface Web >js tutoriel >Codewars - Ordre décroissant
Salutations.
Je publie les défis Codewars et mon processus de réflexion dans cette série. J'utilise JS et Node 18 autant que possible. Par souci de clarté, j'en fais un usage équitable.
Passons au prochain défi de Codewars. Dans celui-ci, nous sommes chargés de développer une fonction qui prend n’importe quel entier en entrée. Nous devons classer les chiffres du plus haut au plus bas.
Je commence par cette pensée :
"D'accord, je devrai diviser les chiffres d'une manière ou d'une autre. Peut-être que je devrais d'abord transformer l'entier en chaîne. Puis diviser les chiffres. Puis trier, puis concaténer le tout, puis revenir à un entier"
Et donc, cela commence par un modèle :
function descendingOrder(n){ // stringify number = n.toString(); // split digits array = new Array(number.length); // code that fills array with digits {} //sort array.sort() // concatenate digits reverse = array.join(''); // back to integer n = Number.parseInt(reverse); return n; }
Beaucoup de lettres, tellement ennuyeuses. Et toujours pas fonctionnel. Alors, de quoi d’autre avons-nous besoin ? Eh bien, une boucle qui place les chiffres dans le tableau pour commencer :
// split digits array = new Array(number.length); for(i=0 ; i<number.length ; i++){ array[i] = number.at(i); }
Ça devrait le faire. N'est-ce pas ?
Non. Un tout petit détail. Le diable est dans les détails. Et les bugs aussi. La fonction de tri classe par défaut par ordre croissant. Nous devons « inverser la polarité ». En substance, nous en avons besoin. Le comportement par défaut est le suivant :
(a, b) => a - b
Et nous avons besoin de :
(a, b) => b - a
Tous les ingrédients réunis :
function descendingOrder(n){ number = n.toString(); array = new Array(number.length); for(i=0;i<number.length;i++){ array[i] = number.at(i); } array.sort((a,b)=>b-a) reverse = array.join(''); n = Number.parseInt(reverse); return n; }
Pas la meilleure, ni la solution la plus simple. Mais ça fait le travail.
Cya. Boire de l'eau ???.
Précédent
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!