88-数组排序方法

  • 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}
        */
    
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容