在 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 ]
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短