javascript - 遍历数字并按降序重新排列

标签 javascript

我正在尝试使用函数重新排列输入数字,以便将单个数字重新排列为降序。

例如,234892 将导致 984322

这是我想出来的。

function descendingOrder(n){
var num = '';
for(var i = 0; i <= n.length + 1; i++){ // iterates through the number
  for(var j = 9; j >= 0; j--){  // starts at 9 and checks numbers descending
    if (j == n[i]){
      num.push(n[i]);  // checks if j == n[i] and if so, pushes to num
      }
      i = 0; // sets i back to 0 to rescan the number again
    }
  }
return num;
}

最佳答案

您可以将数字转换为字符串,拆分每个字符,对其进行排序并再次加入:

+(234892 + '').split('').sort((a, b) => a < b).join('');    

var ordered = +(234892 + '').split('').sort((a, b) => a < b).join('');

document.getElementById('output').appendChild(document.createTextNode(ordered));
234892 → <span id="output"></span>

详细解释:

var str = 234892 + ''; // convert to string
var parts = str.split(''); // convert to array of characters
// sort
parts.sort(function(a, b) {
    return a < b;
});
var finalStr = parts.join(''); // join characters to string
var finalNumber = +finalStr; // convert back to number
console.log(finalNumber); // 984322

关于javascript - 遍历数字并按降序重新排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38958774/

相关文章:

javascript - 通过 flask 将谷歌图表的列表信息正确发送到 JS?

javascript - 使用具有相同内部 html 的 jquery 选择所有类

javascript - 如何在 iframe 中发生点击时触发事件?

javascript - 在表单中传递值

javascript - 如何将字符串转换为字节数组

javascript - 在 Web Worker 中调整和压缩图像。我可以使用 Canvas 吗?

javascript - Node.js - 如何防止中断的子进程继续存在?

javascript - Google 饼图无法正确显示切片

javascript - DataTables 从服务器转换日期 JSON

JavaScript ES6 加载文件机制