利用js动态类型特性对数组排序

首先,看看js和java中关系运算符的区别。这里拿大于号做示例(>)。

 

a、java中的大于号不能用于两个字符串的比较

String s1 = "11", s2 = "12";
System.out.println(s1>s2);//编译报错,不能通过

b、js中的则可以,比较的字符串中各个字符ASCII大小

var s1="11",s2="12";
console.log(s1>s2);//输出false.逐次比较字符的ASCII顺序
 

嗯,利用js这个特性可以很好的对数据进行排序。如下一个数组:

		var eidtionTypeList = [{key:104212,val:"影刻本"},
							   {key:104211,val:"翻刻本"},
							   {key:104210,val:"重刻本"},
							   {key:110,val:"局本"},
							   {key:109,val:"殿本"},
							   {key:108,val:"藍印本"},
							   {key:107,val:"朱印本"},
							   {key:106,val:"套印本"},
							   {key:105,val:"活字印本"},
							   {key:104,val:"刻本"},
							   {key:103,val:"抄本"},
							   {key:102,val:"寫本"},
							   {key:101,val:"稿本"},
							   {key:100,val:""} ];

 

1、按key大小排序

eidtionTypeList.sort(function(a,b){return a.key>b.key;});
console.log(eidtionTypeList);

  输出如下:

0
    Object key=100
1
    Object key=101 val=稿本
2
    Object key=102 val=寫本
3
    Object key=103 val=抄本
4
    Object key=104 val=刻本
5
    Object key=105 val=活字印本
6
    Object key=106 val=套印本
7
    Object key=107 val=朱印本
8
    Object key=108 val=藍印本
9
    Object key=109 val=殿本
10
    Object key=110 val=局本
11
    Object key=104210 val=重刻本
12
    Object key=104211 val=翻刻本
13
    Object key=104212 val=影刻本

 

2、按字符的ASCII码比较

//注意:这里将key转成了字符串类型
eidtionTypeList.sort(function(a,b){return a.key+"">b.key+"";});
console.log(eidtionTypeList);

 输出如下:

   
0
    Object key=100
1
    Object key=101 val=稿本
2
    Object key=102 val=寫本
3
    Object key=103 val=抄本
4
    Object key=104 val=刻本
5
    Object key=104210 val=重刻本
6
    Object key=104211 val=翻刻本
7
    Object key=104212 val=影刻本
8
    Object key=105 val=活字印本
9
    Object key=106 val=套印本
10
    Object key=107 val=朱印本
11
    Object key=108 val=藍印本
12
    Object key=109 val=殿本
13
    Object key=110 val=局本

 

 

因为刻本下有重刻本、翻刻本、影刻本,所以应该是业务上想要的是第二种排序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值