You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

完成Kata时使用sort()实现数字降序排列失败,请求技术排查

问题分析与修复方案

我来帮你找出代码里的问题,这两个小细节错误导致了功能失效:

错误1:split(' ') 使用了错误的分隔符

你现在用空格' '来分割字符串,但数字转成字符串后(比如123456789变成"123456789")是没有空格的,所以split(' ')会返回一个只包含原字符串的数组:["123456789"]。这样后续的sort根本没法对单个元素做排序,自然得不到降序结果。

正确的做法是用空字符串''分割,这样才能把每个字符拆成独立的数组元素:

n.toString().split('')

错误2:join() 没有指定分隔符

join()方法如果不传参数,默认会用逗号,来连接数组元素。比如即使你正确分割并排序后,得到的会是"9,8,7,6,5,4,3,2,1",用parseInt转换时只会取第一个数字9,这显然不是你想要的。

需要传入空字符串''来让字符直接拼接:

.join('')

修正后的完整代码

function descendingOrder(n) {
  let newN = n.toString().split('').sort(function(a, b) {
    return b - a;
  }).join('');
  return parseInt(newN);
}

现在你测试输入123456789,就能得到预期的987654321了,输入0或1的场景也能正常工作。

内容的提问来源于stack exchange,提问作者VisualXZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:03:58