【发布时间】:2019-06-21 21:17:33
【问题描述】:
为了简单起见,假设我们有一个数字 -- 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
}
【问题讨论】:
-
这就是它所需要的。您将获得一些优化,但它们都做同样的事情(但更有效)。
-
你不需要
Number的映射,因为你可以按字符串排序,就像你以后做的那样。 -
@NinaScholz:好点子,谢谢。
-
混合
Number和~~以两种不同的方式执行相同的操作可能会得到改进。 -
javascript 数字最大的问题是它们的大小有限。所以如果你在一些大的函数上尝试你的函数,比如
1999999999999,结果会令人惊讶。
标签: javascript sorting digits