zoukankan      html  css  js  c++  java
  • JS数组排序sort()方法同时按照两种方式排序的用法

    JS数组的sort()方法已经可以满足我们对数组的很多处理需求了,可以对数字、字母、字符串(按照字母)和布尔类型进行排序。

    下面是具体的介绍:

    1. 对数字进行排序:
      var arr = [10, 5, 40, 25, 1];
      
      document.write(arr + "<br />");
      document.write(arr.sort());

      输出:

      [10, 5, 40, 25, 1] 
      [1, 10, 25, 40, 5]

      可以看出它并没有按照数字大小进行排序,而是按照字符串的方式(先比较第一位,如果第一位相等依次比较后面的)。

    2. 对数字按照大小进行排序:
      function sortNumber(a,b)
      {
          return a - b
      }
      
      var arr = [10, 5, 40, 25, 1];
      
      document.write(arr + "<br />")
      document.write(arr.sort(sortNumber))

      输出:

      [1, 10, 25, 40, 5]
      [1, 5, 10, 25, 40]

      若a-b大于0,则b排在前面;若a-b小于0,则a排在前面。若想按照降序排序,函数内可改为“return b - a;”。

    3. 对字符串进行排序:
      var arr = ["Alfredo", "Ronald", "salvador", "Alfredo", "Saryn"];
      
      document.write(arr + "<br />");
      document.write(arr.sort());

      输出:

      ["Alfredo", "Ronald", "salvador", "Alfredo", "Saryn"]
      ["Alexander", "Alfredo", "Ronald", "Saryn", "salvador"]

      原理与例1类似。

    4. 同时按照两种方式排序。需求是这样的:“active”为1的排在前面,“active”为0的排在后面,然后分别按照“name”的字母顺序进行排序:
      var arr= [{
          "name"  : "Alfredo",
          "active": 0
      }, {
          "name"  : "Alexander",
          "active": 0
      }, {
          "name"  : "Ronald",
          "active": 1
      }, {
          "name"  : "salvador",
          "active": 0
      }, {
          "name"  : "Saryn",
          "active": 1
      }];
      
      arr.sort(function (a, b) {
          return b.name < a.name;
      }).sort(function (a, b) {
          return b.active - a.active
      });

      输出:

      [{
          "name"  : "Ronald",
          "active": 1
      }, {
          "name"  : "Saryn",
          "active": 1
      }, {
          "name"  : "Alexander",
          "active": 0
      }, {
          "name"  : "Alfredo",
          "active": 0
      }, {
          "name"  : "salvador",
          "active": 0
      }];

      我们是这样处理的:首先按照字母的顺序进行排序,然后把“active”为1的放在前面,“active”为0的放在后面。

  • 相关阅读:
    c语言基础学习10_文件操作02
    c语言_文件操作_FILE结构体小解释
    初识 Swift编程语言(中文版)
    Jquery滑动门实现
    【一步一步走(1)】远程桌面软件VNC的安装与配置
    并查集 路径压缩(具体解释)
    linux中操作java进程
    HDOJ 3944 DP?
    选择排序与冒泡排序
    UVa145 Gondwanaland Telecom
  • 原文地址:https://www.cnblogs.com/hiwynn/p/7942632.html
Copyright © 2011-2022 走看看