根据JavaScript中数字的权重排序
数字的权重是该数字的位数的总和。例如-
The weight of 100 is 1 The weight of 22 is 4 The weight of 99 is 18 The weight of 123 is 6
我们需要编写一个包含数字数组的JavaScript函数。函数应按权重的升序对数字进行排序,如果两个数字恰好具有相同的权重,则应按实际的升序进行排列。
例如-
50和23具有相同的权重,因此应在50之前放置23,以保持实际的升序(仅在权重相等的情况下)
示例
为此的代码将是-
const arr = [2, 1, 100, 56, 78, 3, 66, 99, 200, 46];
const calculateWeight = (num, sum = 0) => {
if(num){
return calculateWeight(Math.floor(num / 10), sum + (num % 10));
};
return sum;
};
const sorter = (a, b) => {
return calculateWeight(a) − calculateWeight(b) || a − b;
}
arr.sort(sorter);
console.log(arr);输出结果
控制台中的输出将是-
[ 1, 100, 2, 200, 3, 46, 56, 66, 78, 99 ]
热门推荐
10 中考正能量祝福语简短
11 男友红包祝福语简短精辟
12 运动社团祝福语简短英文
13 幽默的离职祝福语简短
14 阿姨添孙子祝福语简短
15 对同学祝福语 简短独特
16 中考花束祝福语霸气简短
17 朋友搬迁新房祝福语简短
18 公司年终晚会祝福语简短