反向排序具有重复值的数字

时间:2017-06-26 04:16:14

标签: javascript

我必须对数字不相同的输入数字进行排序。 我试过这段代码。但不适用于重复的数字。

function abc(n){
   return +n.toString().split('').reverse().join('');
   //take n=1021 it will return 1201, instead of 2110
}

2 个答案:

答案 0 :(得分:3)

您的逻辑中没有实现任何排序:

function abc(n) {
  return +n.toString().split('').sort().reverse().join('');
}

console.log(abc(1021)); // prints "2110"

或者,如果您只定位支持Array.from()功能的浏览器:

function abc(n) {
  return Array.from(String(n), Number).sort().reverse().join('');
};

console.log(abc(1021));

答案 1 :(得分:1)

除了在排序后使用reverse,您可以直接降序排序并省略反转。



function desc(n) {
    return [...n.toString()].sort((a, b) => b - a).join('');
}

console.log(desc(1021)); // '2110'