JS 中关于数组的方法

111 阅读1分钟

1. 翻转数组(reverse 的使用)

        var strs = [1, 2, 3, 5, 85]
        // 翻转数组
        console.log(strs.reverse());

2. 冒泡排序(sort 的使用)

        var strs = [1, 2, 3, 5, 85]
        // 冒泡排序
        console.log(strs.sort());
  • 关于冒泡排序

    对于冒泡排序或许有人遇到过以下问题
        var strs = [13, 4, 77, 1, 7]
        // 冒泡排序
        console.log(strs.sort());
        // 输出内容:[1, 13, 4, 7, 77]

不是说好的冒泡排序吗,怎么变成了这样呢,相信使用过这个方法的人,大部分遇到过这样的情况,那么这是为什么呢?接下来让本菜来给你解答下。

其实答案很简单,因为 js 使用的是 Unicode 编码(一种用来处理各国语言的编码,使用 U 开头,采用的是十六进制,基本上包含了各国的语言字符。),它不像 Java 那样使用的是 ASCII 编码,所以导致了上述结果,具体什么是 Unicode 编码,什么是 ASCII 编码,只能你们自己去了解了,这里附上两个链接,来解答你们的疑惑。

Unicode 编码码表(以后我生成一下)
ASCII 编码码表
  • 解决办法

    升序
            var strs = [13, 4, 77, 1, 7]
          // 冒泡排序
          console.log(strs.sort());
          // 输出内容:[1, 13, 4, 7, 77]
    
          // 解决方法
          // 升序
          console.log(strs.sort(function(a, b){
              return a - b
          }));
    
    降序
            var strs = [13, 4, 77, 1, 7]
          // 冒泡排序
          console.log(strs.sort());
          // 输出内容:[1, 13, 4, 7, 77]
    
          // 解决方法
          // 降序
          console.log(strs.sort(function(a, b){
              return b - a
          }));