按降序对整数进行排序

时间:2019-06-21 21:17:33

标签: javascript sorting digits

为简单起见,假设我们有一个数字- 123456 。我需要一个将其作为输入并返回654321(或说53283940)的函数,该函数将返回98543320。

我似乎有一些工作可以解决,但我不确定是否可以通过最佳实践来完成,似乎可以将其重构为更干净的东西。这是我所拥有的,有什么帮助吗?我是新来尝试改善的人,谢谢。

function descendingOrder(a){
    let b = Array.from(a.toString()).map(Number); // map int into array
    let stringResult = b.sort().reverse().join(""); // sort in ascending, then reverse & join
    let intResult = ~~stringResult; // double bitwise operator to turn str to int
    return intResult; // return final int
}

1 个答案:

答案 0 :(得分:2)

尝试一下:

const sortNumber = (a) => Number([...("" + a)].sort().reverse().join(""));

const test1 = 123456;
console.log(sortNumber(test1));

const test2 = 53283940;
console.log(sortNumber(test2));

const sortNumber = (a) => ~~Array.from(a.toString()).sort().reverse().join("");

const test1 = 123456;
console.log(sortNumber(test1));

const test2 = 53283940;
console.log(sortNumber(test2));