CodeWars为何不接受我的JavaScript解法?编程新手求助
CodeWars JS题目解法修正
题目要求
给定一个整数n,返回将其所有数字按降序排列后的整数。示例:
- 输入
12345,返回54321 - 输入
145263,返回654321 - 输入
1254859723,返回9875543221
你的代码问题
你写的代码有两个核心问题导致平台不通过:
- 调用
parseFloat(result)后没有将转换结果赋值给变量,最终返回的是字符串类型,但题目要求返回数字类型,测试用例的类型检查会失败。 - 多余调用了
reverse()方法——后面的sort((a,b)=>b-a)已经完成了降序排序,reverse完全没必要,属于冗余操作。
修正后的代码
function descendingOrder(n) { return parseInt(n.toString().split('').sort((a, b) => b - a).join(''), 10); }
说明
- 流程:数字转字符串 → 拆分为单个字符数组 → 降序排序 → 拼接为字符串 → 转为十进制整数返回。
- 使用
parseInt并指定第二个参数10,可以避免处理特殊数字时的进制歧义。 - 对于输入
0的情况,代码会正确返回数字0,而非字符串"0",符合题目要求。
内容的提问来源于stack exchange,提问作者Nelson Castro
相关产品推荐
相关产品推荐

