JS实现中文汉字按拼音排序的方法


Posted in Javascript onOctober 09, 2017

本文实例讲述了JS实现中文汉字按拼音排序的方法。分享给大家供大家参考,具体如下:

代码1,拼音排序:

var array = ['武汉', '北京', '上海', '天津'];
var resultArray = array.sort(
 function compareFunction(param1, param2) {
  return param1.localeCompare(param2,"zh");
 }
);
console.log(resultArray);

火狐浏览器 resultArray 结果为:

[ '北京' , '上海' , '天津' ,'武汉' ] ;

代码2,拼音排序并按字母分类:

function pySegSort(arr,empty) {
 if(!String.prototype.localeCompare)
  return null;
 var letters = "*abcdefghjklmnopqrstwxyz".split('');
 var zh = "阿八嚓哒??发旮哈讥咔垃???噢?r七??P它?夕丫??".split('');
 var segs = [];
 var curr;
 $.each(letters, function(i){
  curr = {letter: this, data:[]};
  $.each(arr, function() {
   if((!zh[i-1] || zh[i-1].localeCompare(this,"zh") <= 0) && this.localeCompare(zh[i],"zh") == -1) {
    curr.data.push(this);
   }
  });
  if(empty || curr.data.length) {
   segs.push(curr);
   curr.data.sort(function(a,b){
    return a.localeCompare(b,"zh");
   });
  }
 });
 return segs;
}
JSON.stringify(pySegSort(["我","不","懂","爱","啊","按","已","呀","选","县"]))

结果:

"[
{"letter":"a","data":["啊","爱","按"]},

{"letter":"b","data":["不"]},

{"letter":"d","data":["懂"]},

{"letter":"w","data":["我"]},

{"letter":"x","data":["县","选"]},

{"letter":"y","data":["呀","已"]}
]"

扩展:

JS获取中文拼音首字母,并通过拼音首字母快速查找页面内的中文内容: https://3water.com/article/90842.htm
JS实现超简单的汉字转拼音功能示例:https://3water.com/article/100864.htm
一个实现汉字与拼音互转的小巧web工具库:https://github.com/sxei/pinyinjs

Javascript 相关文章推荐
ExtJs GridPanel简单的增删改实现代码
Aug 26 Javascript
JS实现在Repeater控件中创建可隐藏区域的代码
Sep 16 Javascript
用JQuery调用Session的实现代码
Oct 29 Javascript
JS对select控件option选项的增删改查示例代码
Oct 21 Javascript
使用正则表达式的格式化与高亮显示json字符串
Dec 03 Javascript
JS获取表格内指定单元格html内容的方法
Mar 31 Javascript
Javascript实现计算个人所得税
May 10 Javascript
JavaScript实现的斑马线表格效果【隔行变色】
Sep 18 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
Sep 18 Javascript
JavaScript定时器设置、使用与倒计时案例详解
Jul 08 Javascript
微信小程序之几种常见的弹框提示信息实现详解
Jul 11 Javascript
CocosCreator如何实现划过的位置显示纹理
Apr 14 Javascript
ES6中的Promise代码详解
Oct 09 #Javascript
js+html5生成自动排列对话框实例
Oct 09 #Javascript
jQuery实现获取table中鼠标click点击位置行号与列号的方法
Oct 09 #jQuery
详解如何让Express支持async/await
Oct 09 #Javascript
jQuery插件artDialog.js使用与关闭方法示例
Oct 09 #jQuery
Node.JS使用Sequelize操作MySQL的示例代码
Oct 09 #Javascript
基于zepto.js实现登录界面
Oct 09 #Javascript
You might like
一个简单安全的PHP验证码类 附调用方法
2016/06/24 PHP
PHP面向对象程序设计方法实例详解
2016/12/24 PHP
javascript中字符串拼接需注意的问题
2010/07/13 Javascript
IE中createElement需要注意的一个问题
2010/07/13 Javascript
jQuery 联动日历实现代码
2012/05/31 Javascript
js和css写一个可以自动隐藏的悬浮框
2014/03/05 Javascript
javascript闭包入门示例
2014/04/30 Javascript
解决jQuery动态获取手机屏幕高和宽的问题
2014/05/07 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
2014/09/17 Javascript
js选项卡的实现方法
2015/02/09 Javascript
jQuery调用ajax请求的常见方法汇总
2015/03/24 Javascript
JS中的==运算: [''] == false —&gt;true
2016/07/24 Javascript
使用伪命名空间封装保护独自创建的对象方法
2016/08/04 Javascript
关于Iframe父页面与子页面之间的相互调用
2016/11/22 Javascript
利用forever和pm2部署node.js项目过程
2017/05/10 Javascript
jQuery实现QQ空间汉字转拼音功能示例
2017/07/10 jQuery
Vue SSR 组件加载问题
2018/05/02 Javascript
vue组件之间通信实例总结(点赞功能)
2018/12/05 Javascript
Vue项目history模式下微信分享爬坑总结
2019/03/29 Javascript
Vue 权限控制的两种方法(路由验证)
2019/08/16 Javascript
layui实现图片虚拟路径上传,预览和删除的例子
2019/09/25 Javascript
python机器学习理论与实战(六)支持向量机
2018/01/19 Python
500行Python代码打造刷脸考勤系统
2019/06/03 Python
Prometheus开发中间件Exporter过程详解
2020/11/30 Python
使用HTML5在网页中嵌入音频和视频播放的基本方法
2016/02/22 HTML / CSS
软件部经理岗位职责范本
2014/02/25 职场文书
个人银行贷款担保书
2014/04/01 职场文书
大学生毕业评语
2014/12/31 职场文书
个人廉洁自律总结
2015/03/06 职场文书
大学生求职意向书
2015/05/11 职场文书
教师节老师寄语
2015/05/28 职场文书
寻找成龙观后感
2015/06/12 职场文书
加强党性修养心得体会
2016/01/21 职场文书
python Polars库的使用简介
2021/04/21 Python
java设计模式--建造者模式详解
2021/07/21 Java/Android
python数字图像处理:图像简单滤波
2022/06/28 Python