作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在努力完成这个 kata 。试图弄清楚,我已经看到了这个 thread,但我想我正在按照其中的说明去做。
我做错了什么?为什么它不按降序对数字进行排序?到目前为止,这是我的代码:
function descendingOrder(n){
let newN = n.toString().split(' ').sort(function(a,b){return b-a}).join();
return parseInt(newN);
}
测试通过:值 == 0测试通过:值 == 1预期:987654321,而是得到:123456789
提前致谢
最佳答案
您需要用空字符串 ''
拆分字符串以获得单个数字,然后用空字符串连接它。
用不属于字符串的字符拆分会导致数组具有单个值。稍后连接的数组返回此单个元素。这就是为什么您获得与输入相同的结果的原因。
Array#join
没有指定的分隔符,返回一个逗号分隔的字符串和值。
let newN = n.toString().split('').sort(function (a, b) { return b - a; }).join('');
最后,您可以使用 unary plus +
, 喜欢
return +newN;
用于获取数值。
顺便说一句,使用parseInt
,您可以指定基数,因为前导零的字符串可能会转换为八进制数。
关于javascript - 使用 sort() 获取降序排列的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49602462/
我是一名优秀的程序员,十分优秀!