按降序对数字进行排序,但开头为 `0` JavaScript
javascriptweb developmentfront end technologyobject oriented programming
我们需要编写一个 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 ]