在 JavaScript 中根據數字和對數字進行排序
問題
我們需要編寫一個 JavaScript 函式,該函式將正整數陣列 arr 作為第一個也是唯一引數。
我們的函式應該按以下方式對輸入陣列進行排序:數字和最高的數字排在前面,其次是數字和較小的數字。
例如,如果輸入函式的是 -
輸入
const arr = [5, 34, 1, 13, 76, 8, 78, 101, 57, 565];
輸出
const output = [565, 78, 76, 57, 8, 34, 5, 13, 101, 1];
輸出說明
因為 565 的數字和最高為 16,其次是 78 和 76,101 和 1 的數字和最小,分別為 2 和 1
示例
以下是程式碼 -
const arr = [5, 34, 1, 13, 76, 8, 78, 101, 57, 565];
const addDigits = (num, sum = 0) => {
if(num){
return addDigits(Math.floor(num / 10), sum + (num % 10));
};
return sum;
};
const sortByDigitSum = (arr = []) => {
arr.sort((a, b) => {
return addDigits(b) - addDigits(a);
});
return arr;
};
sortByDigitSum(arr);
console.log(arr);輸出
[ 565, 78, 76, 57, 8, 34, 5, 13, 101, 1 ]
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP