当前位置: 首页 > 图文教程 > 网络编程 > Javascript > JavaScript 给汉字排序实例代码

Javascript
javascript if 的简化代码
javascript下with 的简化代码写法
javascript简化代码 A=alert w=document.writeln
js 调整select 位置的函数
JS应用之禁止抓屏、复制、打印
js加解密 脚本解密
js+vml创建3D页面效果代码
javascript简写效果“神秘的眼睛”
js实现的定时关闭页面或定时提醒效果代码
js 字数统计,区分英汉
js双色时间效果代码
js计算时间过去的时间
一个javascript参数的小问题
textarea支持图形编辑的实现方法
JavaScript面向对象编程
动态生成的IFRAME,设置SRC时的,不同位置带来的影响
JObj预览一个JS的框架
去除有数组中重复的元素
用JObj实现的渐变效果
给自定义对象加上自定义事件的支持的教程

Javascript 中的 JavaScript 给汉字排序实例代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 166 ::
收藏到网摘: n/a

数组的 sort 方法默认字符的编码排序,有时候要给一组汉字排序,默认的方法就不适用了。 比如 var arr = ["中","华","人","民","共","和","国"],在执行 sort 方法后结果为 :中,人,共,华,和,国,民,既不是拼音也不是笔划数量的排序。
以前很少留意过 localeCompare 方法,手册中说它执行时返回一个值,指出在当前的区域设置中两个字符串是否相同。返回值有三种:-1,0,1,刚好是 sort 方法参数所需要的类型。把 localeCompare 应用到 sort 方法中去,看看结果:
var arr = ["中","华","人","民","共","和","国"];
alert(arr.sort(function(a,b){return a.localeCompare(b)}));//结果为:共,国,和,华,民,人,中(拼音升序)
注意到 localeCompare 方法是在当前区域中进行比较的,即比较的环境为当前操作系统设置的地理区域,比如数字、货币、日期时间等的表现方式(在“控制面板”中可以查看修改),如果设置排序的方式为笔划,那上面的结果则为:人,中,民,共,华,和,国(笔划升序)。