• JavaScript非数字(中文)排序


      直接上代码:

      

     1     var arr=[
     2             {name:"张散步",age:"23",sports:"篮球",number:"231123"},
     3             {name:"李斯的",age:"3",sports:"钢琴",number:"534563"},
     4             {name:"艾伦",age:"63",sports:"排球",number:"345455"},
     5             {name:"王武",age:"33",sports:"乒乓球",number:"867324"},
     6             {name:"乏力",age:"26",sports:"足球",number:"132457"}
     7         ];
     8 
     9         //console.log(ForwardRanking(arr,"name"));//正序
    10         //console.log(ReverseRanking(arr,"name"));//反序
    11         //console.log(ForwardRanking(arr,"sports"));//正序
    12         //console.log(ReverseRanking(arr,"sports"));//反序
    13 
    14 
    15         /* 中文正向排序
    16          *
    17          * data:对象数组
    18          * p:排序的参数名
    19          *
    20          * */
    21         function ForwardRanking(data, p) {
    22             for (i = 0; i < data.length - 1; i++) {
    23                 for (j = 0; j < data.length - 1 - i; j++) {
    24                     var dd = (data[j][p].localeCompare(data[j + 1][p], "zh"));//1---前者往后移,-1===位置不变
    25                     if (dd > 0) {
    26                         var temp = data[j];
    27                         data[j] = data[j + 1];
    28                         data[j + 1] = temp;
    29                     }
    30                 }
    31             }
    32             return data;
    33         }
    34 
    35 
    36         /*反向排序
    37          *
    38          * data:对象数组
    39          * p:排序的参数名
    40          *
    41          * */
    42         function ReverseRanking(data, p) {
    43             for (i = 0; i < data.length - 1; i++) {
    44                 for (j = 0; j < data.length - 1 - i; j++) {
    45                     var dd = (data[j][p].localeCompare(data[j + 1][p], "zh"));//1---前者往后移,-1===位置不变
    46                     if (dd < 0) {
    47                         var temp = data[j];
    48                         data[j] = data[j + 1];
    49                         data[j + 1] = temp;
    50                     }
    51                 }
    52             }
    53             return data;
    54         }

      结果如下:

      1、姓名,左边是正序(ForwardRanking(arr,"name")),右边是反序(ReverseRanking(arr,"name"));

          

       1、sports,左边是正序(ForwardRanking(arr,"sports")),右边是反序(ReverseRanking(arr,"sports"));

           

       这是其他排序的方法,欢迎查看,欢迎给意见!

      JavaScript按纯数字排序

      JavaScript日期排序

      JavaScript按IP地址排序

      JavaScript按日期排序之灵活排序

      

  • 相关阅读:
    面向对象 (11)求交并集 判断字符形式
    软件工程 课程总结
    面向对象 (10)正则判邮箱
    面向对象 (9)计算时间差 找随机数范围内规律
    面向对象 (8)字符串出现字符个数统计 字母组成回文串判定
    面向对象 (7)中介买房 平均数异常处理
    面向对象 (6)买房付首款
    第16周作业
    第15周作业
    迟到的第14周作业
  • 原文地址:https://www.cnblogs.com/nelsonlei/p/8431351.html
Copyright © 2020-2023  润新知