美文网首页
字符串排序

字符串排序

作者: web_jianshu | 来源:发表于2020-05-19 22:34 被阅读0次

<!DOCTYPE html>

<html lang="en">

  <head>

    <meta charset="UTF-8" />

    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <meta http-equiv="X-UA-Compatible" content="ie=edge" />

    <title>字符串排序</title>

  </head>

  <body>

    <script>

      // 排序 升序

      var string =

        "10楼1号主机 1楼10号主机 1楼1号主机 11楼2号主机 9楼2号主机 8楼1号主机";

      var myArray = string.split(" ");

      // =>  ["10楼1号主机", "1楼10号主机", "1楼1号主机", "", "11楼2号主机", "9楼2号主机", "8楼1号主机"]

      var reg = /\d{1,}/g;

      myArray = myArray.map(item => {

        return item.match(reg);

      });

      var array = myArray;

      // 排序 => 升序 第一个数字表示第几层楼 第二个数字表示第几台空调

      function defaultCompare(a, b, c, d) {

        return a > c ? true : a == c ? (b > d ? true : false) : false;

      }

      function swap(array, a, b) {

        [array[a], array[b]] = [array[b], array[a]];

      }

      function bubbleSort(array, compareFn = defaultCompare) {

        const { length } = array;

        for (let i = 0; i < length - 1; i++) {

          for (let j = 0; j < length - 1 - i; j++) {

            let [a, b] = array[j];

            let [c, d] = array[j + 1];

            if (compareFn(parseInt(a), parseInt(b), parseInt(c), parseInt(d))) {

              swap(array, j, j + 1);

            }

          }

        }

        return array;

      }

      bubbleSort(array);

      console.log(array); // => [["1", "1"], ["1", "10"], ["8", "1"], ["9", "2"], ["10", "1"], ["11", "2"]]

      var newArr = [];

      array.map(val => {

        string.split(" ").map(item => {

          let [m, n] = item.match(reg);

          let [p, q] = val;

          if (m == p && n == q) {

            newArr.push(item);

          }

        });

      });

      console.log(newArr); // => ["1楼1号主机", "1楼10号主机", "8楼1号主机", "9楼2号主机", "10楼1号主机", "11楼2号主机"]

    </script>

  </body>

</html>

相关文章

  • js算法

    排序算法 冒泡排序 快速排序 字符串操作 判断回文字符串 翻转字符串 反向遍历字符串 function reve...

  • JS排序

    1、数字排序 2、字符串排序 3、中文排序 4、中英文数字字符串排序

  • nodejs实现字符串排序(高位优先&低位优先)

    字符串排序 网上很多都是c实现的,这里我写一个nodejs实现的 低位优先字符串排序 高位优先字符串排序

  • 常见算法的js实现

    排序算法 1、冒泡排序 2、快速排序 3、二路归并 字符串操作 1、判断回文字符串 2、翻转字符串 思路一:反向遍...

  • 常见算法的 js 实现

    排序算法 1、冒泡排序 2、快速排序 3、二路归并 字符串操作 1、判断回文字符串 2、翻转字符串 思路一:反向遍...

  • js相关算法

    一、排序算法 1、冒泡排序 2、快速排序 3、二路归并 二、字符串操作 1、判断回文字符串 2、翻转字符串 思路一...

  • Android中字符串操作简介

    字符串排序(冒泡排序) 字符串比较大小 反转字符串 获取某段字符 判断字符串中出现的子字符串的次数

  • 数据结构与算法——字符串排序

    数据结构与算法——字符串排序 对于许多排序应用,决定顺序的键都是字符串。下面将学习专门针对字符串类型的排序方法,这...

  • 前端常见算法的JS实现

    排序算法1、冒泡排序 2、快速排序 3、二路归并 字符串操作1、判断回文字符串 2、翻转字符串思路一:反向遍历字符...

  • 字符串排序

    对于许多排序应用,决定顺序的键都是字符串。这里将分享两类完全不同的字符串排序方法,三种不同的字符串排序算法。 ...

网友评论

      本文标题:字符串排序

      本文链接:https://www.haomeiwen.com/subject/tfxwohtx.html