在 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