JavaScript 降序排列数字,但将 0 置于开头
我们需要编写一个 JavaScript 函数,该函数接收一个数字数组作为输入。该函数应根据以下条件对数字数组进行排序:
- ---如果数组包含任何零,则所有零都应出现在开头。
- ---所有剩余数字应按递减顺序排列。
例如:
如果输入数组是:
const arr = [4, 7, 0 ,3, 5, 1, 0];
则应用排序后,数组应变为:
const output = [0, 0, 7, 5, 4, 3, 1];
这里我们将使用 Array.prototype.sort() 方法。
对于降序排序,我们将从 sort 函数的第一个参数中减去第二个参数。如果任何值为假值(零),我们将使用 Number.MAX_VALUE 代替该值。
示例
const arr = [4, 7, 0 ,3, 5, 1, 0];
const specialSort = (arr = []) => {
const sorter = (a, b) => {
return (b || Number.MAX_VALUE) - (a || Number.MAX_VALUE);
};
arr.sort(sorter);
};
specialSort(arr);
console.log(arr);输出
这将产生以下输出:
[ 0, 0, 7, 5, 4, 3, 1 ]
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP