Heim > Web-Frontend > js-Tutorial > Codewars – Absteigende Reihenfolge

Codewars – Absteigende Reihenfolge

Linda Hamilton
Freigeben: 2025-01-05 10:39:43
Original
502 Leute haben es durchsucht

Anreden.

Codewars - Descending Order

Ich poste in dieser Serie Codewars-Herausforderungen und meinen Denkprozess. Ich verwende wann immer möglich JS und Node 18. Nur der Klarheit halber nutze ich sie fair.

Auf zur nächsten Herausforderung von Codewars. In diesem Fall haben wir die Aufgabe, eine Funktion zu entwickeln, die eine beliebige Ganzzahl als Eingabe akzeptiert. Wir müssen die Ziffern von der höchsten zur niedrigsten ordnen.

Ich beginne mit diesem Gedanken:

„Okay, ich muss die Ziffern irgendwie aufteilen. Vielleicht sollte ich zuerst die Ganzzahl in einen String umwandeln. Dann die Ziffern aufteilen. Dann ordnen, dann alle verketten und dann zur Ganzzahl zurückkehren“

Und so beginnt es mit einer Vorlage:

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;
}
Nach dem Login kopieren

Viele Briefe, so langweilig. Und immer noch nicht funktionsfähig. Was brauchen wir also noch? Nun, für den Anfang eine Schleife, die die Ziffern im Array platziert:

 // split digits
  array = new Array(number.length);
  for(i=0 ; i<number.length ; i++){
    array[i] = number.at(i);
  }
Nach dem Login kopieren

Das sollte reichen. Richtig?

Codewars - Descending Order

Nein. Ein kleines Detail. Der Teufel steckt im Detail. Und das gilt auch für Käfer. Die Sortierfunktion sortiert standardmäßig aufsteigend. Wir müssen „die Polarität umkehren“. Im Wesentlichen brauchen wir das. Das Standardverhalten ist wie folgt:

(a, b) => a - b
Nach dem Login kopieren

Und wir brauchen:

(a, b) => b - a
Nach dem Login kopieren

Alle Zutaten zusammen:

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;
}
Nach dem Login kopieren

Weder die beste noch die einfachste Lösung. Aber es erfüllt seinen Zweck.

Cya. Wasser trinken???.

Zurück

Das obige ist der detaillierte Inhalt vonCodewars – Absteigende Reihenfolge. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage