数据重组,输出组合最大的数字

243 阅读1分钟

 结果展示:

代码如下:

 * @Author: 森林之下 wuxinming0711@163.com
 * @Date: 2022-05-22 16:08:42
 * @LastEditors: 森林之下 wuxinming0711@163.com
 * @LastEditTime: 2022-05-22 23:10:04
 * @FilePath: \studyd:\StudyEveryDay\JS基础\No.19\demo05.html
 * @Description: 字符串重组,组合成最大的数字
-->
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>字符串重组</title>
</head>

<body>
  <button onclick="combine()">点击开始重组</button>
  <script>
    function combine() {
      // 获取输入的字符串
      var str = prompt("请输入:");
      // 获取字符串长度
      var strLength = str.length;
      // 定义一个空数组用于存储数字
      var arr = [];
      // 定义数组的下标
      var j = 0;
      // 将输入的字符串拆分为单个字符,存入数组
      for (var i = 0; i < strLength; i++) {
        // 判断该字符是否为数字(0特殊处理),只把数字存入数组
        if (Number(str.slice(i, i + 1)) || Number(str.slice(i, i + 1)) === 0) {
          arr[j] = str.slice(i, i + 1);
          j++;
        }
      }
      // 利用冒泡排序将数组元素按照由大到小的顺序排列
      for (var m = 0; m < arr.length; m++) {
        for (var n = m + 1; n < arr.length; n++) {
          if (arr[m] <= arr[n]) {
            // 数据交换,交换数组下标为m和数组下标为n的值
            var tmp = arr[m];
            arr[m] = arr[n];
            arr[n] = tmp;
          }
        }
      }

      var num = 0;
      // 将数组中的单个字符进行组合
      for (var a = 0; a < arr.length; a++) {
        num += arr[a] * 10 ** (arr.length - a - 1);
      }


      document.write(`你输入的字符串为:${str}<br>`);
      document.write(`去掉多余字符后的数组为:${arr}<br>`);
      document.write(`重组后的数字为:${num}`);
    }
  </script>
</body>

</html>```