根据数字根JavaScript对数字进行排序

数字根

正整数的数字根定义为所有数字的总和。

我们需要编写一个使用整数数组的JavaScript函数。该函数应按以下方式对它进行排序:如果a在b之前,则a的数字根小于或等于b的数字根。如果两个数字具有相同的数字根,则较小的一个(通常是)应排在第一位。

例如,4和13具有相同的数字根,但是4 <13因此4在出现两者的任何digitRoot排序中都在13之前。

例如-

如果输入数组是-

const arr = [13, 20, 7, 4];

那么输出应该是-

const output = [20, 4, 13, 7];

示例

const arr = [13, 20, 7, 4];

const digitSum = (num, sum = 0) => {

   if(num){

      return digitSum(Math.floor(num / 10), sum + (num % 10));

   };

   return sum;

};

const digitalSort = (arr = []) => {

   const sorter = (a, b) => {

      return (digitSum(a) - digitSum(b)) || (a - b);

   };

   arr.sort(sorter);

};

digitalSort(arr);

console.log(arr);

输出结果

这将产生以下输出-

[ 20, 4, 13, 7 ]

以上是 根据数字根JavaScript对数字进行排序 的全部内容, 来源链接: utcz.com/z/338044.html

回到顶部