Pie*_*BJX 1 javascript arrays sorting pivot
考虑到,我有一个像这样的数组[...,n-2,n-1,n,n + 1,n + 2,...]。我想以[n,n + 1,n-1,n + 2,n-2,...]的方式对它进行排序,其中n等于数组的中间位置。
例如:
输入:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)
输出:
[5, 6, 4, 7, 3, 8, 2, 9, 1, 0]
Run Code Online (Sandbox Code Playgroud)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)
我所做的工作正常,但是我想知道是否有更好的方法或更有效的方法?
您可以选择一个数据透视值,5然后按该值的绝对增量进行排序,而数据透视度值按相同的增量降序排序。
var array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
pivot = 5;
array.sort((a, b) => Math.abs(a - pivot) - Math.abs(b - pivot) || b - a);
console.log(...array); // 5 6 4 7 3 8 2 9 1 0Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
156 次 |
| 最近记录: |