码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript非数字(中文)排序

时间:2018-02-08 15:32:36      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:oca   src   其他   参数   war   tle   数组   中文   com   

  直接上代码:

  

 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非数字(中文)排序

标签:oca   src   其他   参数   war   tle   数组   中文   com   

原文地址:https://www.cnblogs.com/nelsonlei/p/8431351.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!