amp@java

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  99 随笔 :: 0 文章 :: 228 评论 :: 0 Trackbacks

JavaScript里的Array有一个sort方法:

来自微软的Jscript文档

返回一个元素已经进行了排序的 Array 对象。

arrayobj.sort(sortfunction) 

参数

arrayObj
必选项。任意 Array 对象。
sortFunction
可选项。是用来确定元素顺序的函数的名称。如果这个参数被省略,那么元素将按照 ASCII 字符顺序进行升序排列。

说明

sort 方法将 Array 对象进行适当的排序;在执行过程中并不会创建新的 Array 对象。

如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之一:

  • 负值,如果所传递的第一个参数比第二个参数小。
  • 零,如果两个参数相等。
  • 正值,如果第一个参数比第二个参数大。


因此,排序的关键就在于如何设置sortfunction这个函数了。
在JavaScript中,字符串有一个localeCompare方法,能够根据区域设置来排序,中文的话就是按照拼音排序了。

来自微软的Jscript文档

返回一个值,指出在当前的区域设置中两个字符串是否相同。

stringVar.localeCompare(stringExp)

参数

stringVar
必选项。一个 String 对象文字。
stringExp
必选项。将与 stringVar 进行比较的字符串。

说明

localeCompare 可以对 stringVarstringExp 进行一个区分区域设置的字符串比较并返回 –1、0 或 +1,这取决于系统中缺省区域设置的排序。

如果 stringVar 排序在 stringExp 之前,那么 localeCompare 返回 –1;如果 stringVar 排序在 stringExp 之后,则返回 +1。如果返回值为 0,那就说明这两个字符串是相同的。


把以上两个方法结合,就可以轻松实现按照拼音顺序对多个字符串进行排序了。

例子可以见这里:
http://hi.baidu.com/aaxh/blog/item/eb6ddaf953327858252df218.html
posted on 2007-04-16 15:08 amp@java 阅读(937) 评论(0)  编辑  收藏 所属分类: WEB

只有注册用户登录后才能发表评论。


网站导航: