2

So say we have a number -- 123456 for simplicity sake. I needed a function that would take that as input and return 654321, or say 53283940, same would return 98543320.

I have something seems to work I'm just not sure if it's done with best practice, it seems like it can be re-factored into something cleaner. Here is what I have, any help? I'm new trying to improve, thank you.

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
}
Bergi
  • 630,263
  • 148
  • 957
  • 1,375
exception-io
  • 115
  • 6

1 Answers1

3

Try this:

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

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

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

or

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

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

const test2 = 53283940;
console.log(sortNumber(test2));
Ghoul Ahmed
  • 4,446
  • 1
  • 14
  • 23