Rumah > hujung hadapan web > tutorial js > Codewars - Perintah Menurun

Codewars - Perintah Menurun

Linda Hamilton
Lepaskan: 2025-01-05 10:39:43
asal
507 orang telah melayarinya

Salam.

Codewars - Descending Order

Saya menyiarkan cabaran Codewars dan proses pemikiran saya dalam siri ini. Saya menggunakan JS dan Node 18 apabila boleh. Hanya demi kejelasan, saya menggunakan mereka secara adil.

Menerusi cabaran seterusnya daripada Codewars. Dalam yang ini, kami ditugaskan untuk membangunkan fungsi yang mengambil sebarang integer sebagai input. Kita perlu menyusun digit dari tertinggi hingga terendah.

Saya mulakan dengan pemikiran ini:

"Ok, entah bagaimana saya perlu membahagikan digit. Mungkin saya perlu menukar integer kepada rentetan dahulu. Kemudian bahagikan digit. Kemudian susun, kemudian gabungkan semua, kemudian kembali kepada integer"

Jadi, ia bermula dengan templat:

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;
}
Salin selepas log masuk

Banyak huruf, membosankan. Dan masih tidak berfungsi. Jadi, apa lagi yang kita perlukan? Nah, gelung yang meletakkan digit dalam tatasusunan sebagai permulaan:

 // split digits
  array = new Array(number.length);
  for(i=0 ; i<number.length ; i++){
    array[i] = number.at(i);
  }
Salin selepas log masuk

Sepatutnya. Betul tak?

Codewars - Descending Order

Tidak. Satu perincian kecil. Syaitan ada dalam butirannya. Dan begitu juga pepijat. Susunan fungsi isihan dalam fesyen menaik secara lalai. Kita perlu "mengembalikan polariti". Pada dasarnya, kita memerlukan ini. Tingkah laku lalai adalah seperti ini:

(a, b) => a - b
Salin selepas log masuk

Dan kami memerlukan:

(a, b) => b - a
Salin selepas log masuk

Semua bahan digabungkan:

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;
}
Salin selepas log masuk

Bukan yang terbaik, mahupun penyelesaian yang paling mudah. Tetapi ia berfungsi.

Cya. Minum air ???.

Sebelumnya

Atas ialah kandungan terperinci Codewars - Perintah Menurun. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan