美文网首页
88-数组排序方法

88-数组排序方法

作者: 仰望_IT | 来源:发表于2019-05-02 23:30 被阅读0次
  • let arr = ["c", "a", "b"];

    • 升序排序
          let arr = ["c", "a", "b"];
          arr.sort();
      
          console.log(arr);  // ["a", "b", "c"]
      
    • 降序排序
          let arr = ["c", "a", "b"];
          /*
          如果 sort(a, b) 小于 0 ,那么 a 会被排列到 b 之前;
          如果 sort(a, b) 等于 0 , a 和 b 的相对位置不变。
          如果 sort(a, b) 大于 0 , b 会被排列到 a 之前。
          注意点: 如果元素是字符串类型, 那么比较的是Unicode编码
           */
          arr.sort(function (a, b) {
              if (a > b){
                  return -1;
              }else if (a < b) {
                  return 1;
              }else {
                  return 0;
              }
          });
          
          console.log(arr);  // ["c", "b", "a"]
      

  • let arr = [3, 4, 2, 5, 1];

    • 升序排序
          let arr = [3, 4, 2, 5, 1];
          // 方式一
          arr.sort();
      
          // 方式二
          arr.sort(function (a, b) {
              // 规律: 如果数组中的元素是数值类型
              //       如果需要升序排序, 那么就返回a - b;
              return a - b;
          });
      
          console.log(arr);  // [1, 2, 3, 4, 5]
      
    • 降序排序
          let arr = [3, 4, 2, 5, 1];
          // 方式一
          arr.sort(function (a, b) {
              if (a > b){
                  return -1;
              } else if (a < b){
                  return 1;
              } else {
                  return 0;
              }
          });
      
          // 方式二
          arr.sort(function (a, b) {
              // 规律: 如果数组中的元素是数值类型
              //       如果需要降序排序, 那么就返回b - a;
              return b - a;
          });
      
          console.log(arr);  // [5, 4, 3, 2, 1]
      

  • let arr = ["1234", "21", "54321", " 123", "6"];

    • 升序排序
          let arr = ["1234", "21", "54321", " 123", "6"];
      
          arr.sort(function (str1, str2) {
              // 字符串是特殊的数组, 所以字符串也有length属性, 通过length属性也可以获取到这个字符串中有多少个元素多少个字符
              return str1.length -str2.length;
          });
      
          console.log(arr);  // ["6", "21", "1234", " 123", "54321"]
      
    • 降序排序
          let arr = ["1234", "21", "54321", " 123", "6"];
      
          arr.sort(function (str1, str2) {
              // 字符串是特殊的数组, 所以字符串也有length属性, 通过length属性也可以获取到这个字符串中有多少个元素多少个字符
              return str2.length -str1.length;
          });
      
          console.log(arr);  // ["54321", "1234", " 123", "21", "6"]
      

let students = [
            {name: "zs", age: 34},
            {name: "ls", age: 18},
            {name: "ww", age: 22},
            {name: "mm", age: 28},
        ];
  • 升序排序
        let students = [
            {name: "zs", age: 34},
            {name: "ls", age: 18},
            {name: "ww", age: 22},
            {name: "mm", age: 28},
        ];
        students.sort(function (o1, o2) {
            return o1.age - o2.age;
        });
    
        console.log(students);  
      /*
        0: {name: "ls", age: 18}
        1: {name: "ww", age: 22}
        2: {name: "mm", age: 28}
        3: {name: "zs", age: 34}
      */
    
  • 降序排序
        let students = [
            {name: "zs", age: 34},
            {name: "ls", age: 18},
            {name: "ww", age: 22},
            {name: "mm", age: 28},
        ];
        students.sort(function (o1, o2) {
            return o2.age - o1.age;
        });
    
        console.log(students);
        /*
        0: {name: "zs", age: 34}
        1: {name: "mm", age: 28}
        2: {name: "ww", age: 22}
        3: {name: "ls", age: 18}
        */
    

相关文章

网友评论

      本文标题:88-数组排序方法

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