我想对一组数字进行降序排序,根据数组外部或内部的数字一步进行自定义排序,而不需要拆分或过滤和团聚 我使用 Angular 17 和 Rxjs 7.8
例如,如果我有这个数字数组:
items:Array<number>=[2,6,4,8,1,9,3,5,10];
我想根据任何数字对这个数组进行排序,例如:7 所以预期的结果会是这样的
[6,5,4,3,2,1,8,9,10]
数字 4 的另一个示例,预期结果将是:
[4,3,2,1,5,6,8,9,10]
我尝试了以下代码,但没有成功
const sortBasedValue = 7
this.sortedItems = this.items.sort((a, b) => {
if (sortBasedValue > b) {
return 1;
}
if (sortBasedValue < b) {
return -1;
}
return 0;
});
那么这种自定义排序可以一步完成吗?
function reorderArray(arr: number[], target: number): number[] {
return arr
.filter(x => x <= target)
.sort((a, b) => b - a)
.concat(arr.filter(x => x > target).sort((a, b) => a - b));
}
// Example usage:
const result = reorderArray([2,6,4,8,1,9,3,5,10], 4);
console.log(result); // Output: [4,3,2,1,5,6,8,9,10]