zoukankan      html  css  js  c++  java
  • 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按日期排序之灵活排序

      

  • 相关阅读:
    第六次作业
    第五次作业1
    java第三次作业
    JAVA 第二次作业
    JAVA第一次作业
    第 十一 次作业
    第十次作业
    第九次作业
    第八次作业
    第七次作业
  • 原文地址:https://www.cnblogs.com/nelsonlei/p/8431351.html
Copyright © 2011-2022 走看看