Vis*_*lXZ 5 javascript sorting
我正在努力完成这个型。试图弄清楚这一点,我已经看到了这个线程,但我认为我正在按照其中的说明进行操作。
我究竟做错了什么?为什么它不按降序对数字进行排序?到目前为止,这是我的代码:
function descendingOrder(n){
let newN = n.toString().split(' ').sort(function(a,b){return b-a}).join();
return parseInt(newN);
}
Run Code Online (Sandbox Code Playgroud)
测试通过:值 == 0 测试通过:值 == 1 预期:987654321,而不是:123456789
提前致谢
您需要用空字符串拆分字符串''
以获得单位数字,然后用空字符串将其连接起来。
使用不属于字符串的字符进行拆分会产生一个具有单个值的数组。后来加入的数组返回这个单个元素。这就是为什么你得到与输入相同的结果值。
Array#join
如果没有指定分隔符,则返回包含值的逗号分隔字符串。
let newN = n.toString().split('').sort(function (a, b) { return b - a; }).join('');
Run Code Online (Sandbox Code Playgroud)
最后,您可以采用一元加号+
,例如
return +newN;
Run Code Online (Sandbox Code Playgroud)
以获得数值。
顺便说一句,通过使用parseInt
,您可以指定基数,因为带有前导零的字符串可能会转换为八进制数。