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

Codewars – Absteigende Reihenfolge

Linda Hamilton
Linda HamiltonOriginal
2025-01-05 10:39:43531Durchsuche

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;
}

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);
  }

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

Und wir brauchen:

(a, b) => b - a

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;
}

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!

Stellungnahme:
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
Vorheriger Artikel:VS-Code LLM = ?Nächster Artikel:VS-Code LLM = ?