您的位置:首页 > Web前端 > JavaScript

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

2010-05-11 09:07 471 查看
首先,看看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=局本

因为刻本下有重刻本、翻刻本、影刻本,所以应该是业务上想要的是第二种排序。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: