Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按数字长度排序,然后按数字本身排序_Javascript_Sorting - Fatal编程技术网

Javascript 按数字长度排序,然后按数字本身排序

Javascript 按数字长度排序,然后按数字本身排序,javascript,sorting,Javascript,Sorting,如何按整数的位数长度降序排列一个整数数组,然后按相同位数长度的数字升序排列以解决关系 例子 digitSort([77, 23, 5, 7, 101]) ➞ [101, 23, 77, 5, 7] digitSort([1, 5, 9, 2, 789, 563, 444]) ➞ [444, 563, 789, 1, 2, 5, 9] digitSort([53219, 3772, 564, 32, 1]) ➞ [53219, 3772, 564, 32, 1] 我试着写我自己的排序函数,但

如何按整数的位数长度降序排列一个整数数组,然后按相同位数长度的数字升序排列以解决关系

例子

digitSort([77, 23, 5, 7, 101])
➞ [101, 23, 77, 5, 7]

digitSort([1, 5, 9, 2, 789, 563, 444])
➞ [444, 563, 789, 1, 2, 5, 9]

digitSort([53219, 3772, 564, 32, 1])
➞ [53219, 3772, 564, 32, 1]
我试着写我自己的排序函数,但没用!
请帮助

这是代码,如果长度相同,只需返回较小的,否则返回最长的

功能数字排序(arr){
返回arr.sort((a,b)=>{
如果(a.toString().length!==b.toString().length){
返回b.toString().length-a.toString().length;
}
返回a-b;
})
}

数值方法将10的对数作为数字计数

const digitSort=array=>array.sort((a,b)=>
Math.floor(Math.log10(Math.abs(b))-Math.floor(Math.log10(Math.abs(a)))||
a-b
);
log(digisort([77,23,5,7,101]);//[101, 23, 77, 5, 7]
log(digisort([1,5,9,2789563444]);//[444, 563, 789, 1, 2, 5, 9]
log(digisort([532193772564,32,1]);//[532193772564,32,1]
const digitSort=arr=>arr.sort((a,b)=>String(b).长度-字符串(a).长度| | a-b)
log(digisort([77,23,5,7101])/[101,23,77,5,7]
log(数字排序([9667,87,563023555111])/[3023555111667,56,87,9]
```

Beauty。