問候。
我在這個系列中發布了 Codewars 挑戰和我的思考過程。我盡可能使用 JS 和 Node 18。只是為了清楚起見,我正在合理地使用它們。
迎接 Codewars 的下一個挑戰。在本教程中,我們的任務是開發一個接受任何整數作為輸入的函數。我們必須將數字從最高到最低排序。
我從這個想法開始:
「好吧,我需要以某種方式分割數字。也許我應該先將整數轉換為字串。然後分割數字。然後排序,然後連接所有數字,然後恢復為整數」
所以,它從一個模板開始:
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; }
很多信件,真無聊。而且仍然不起作用。那麼,我們還需要什麼呢?好吧,這是一個將數字放入數組中的循環,供初學者使用:
// split digits array = new Array(number.length); for(i=0 ; i<number.length ; i++){ array[i] = number.at(i); }
應該可以了。對嗎?
不。一個微小的細節。魔鬼在於細節。錯誤也是如此。排序函數預設按升序排序。我們需要「恢復極性」。從本質上講,我們需要這個。預設行為是這樣的:
(a, b) => a - b
我們需要:
(a, b) => b - a
所有成分組合:
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; }
不是最好的,也不是最簡單的解決方案。但它確實起到了作用。
賽亞。喝水???.
上一頁
以上是Codewars - 降序的詳細內容。更多資訊請關注PHP中文網其他相關文章!