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 相关文章推荐
passwordStrength 基于jquery的密码强度检测代码使用介绍
Oct 08 Javascript
用jquery实现点击栏目背景色改变
Dec 10 Javascript
瀑布流布局并自动加载实现代码
Mar 12 Javascript
jQuery中Ajax的load方法详解
Jan 14 Javascript
javascript解决IE6下hover问题的方法
Jul 28 Javascript
JQuery fileupload插件实现文件上传功能
Mar 18 Javascript
js将json格式的对象拼接成复杂的url参数方法
May 25 Javascript
微信小程序开发入门基础教程
Apr 19 Javascript
vue watch普通监听和深度监听实例详解(数组和对象)
Aug 16 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
Sep 27 Javascript
JavaScript设计模式之享元模式实例详解
Jan 17 Javascript
Node.js 多线程完全指南总结
Mar 27 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获取网卡的MAC地址支持WIN/LINUX系统
2014/04/30 PHP
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
2014/06/06 PHP
php编程中echo用逗号和用点号连接的区别
2016/03/26 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
关于文本限制字数的js代码
2007/04/02 Javascript
利用javascript/jquery对上传文件格式过滤的方法
2009/07/25 Javascript
jquery 页面全选框实践代码
2010/04/02 Javascript
jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
2010/04/18 Javascript
jquery禁止回车触发表单提交
2014/12/12 Javascript
JavaScript淡入淡出渐变简单实例
2015/08/06 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
基于jquery实现三级下拉菜单
2016/05/10 Javascript
vue.js表格分页示例
2016/10/18 Javascript
Node.js的Mongodb使用实例
2016/12/30 Javascript
Javascript自定义事件详解
2017/01/13 Javascript
微信小程序实现图片自适应(支持多图)
2017/01/25 Javascript
jquery实现的table排序功能示例
2017/03/10 Javascript
Webpack 服务器端代码打包的示例代码
2017/09/19 Javascript
浅谈webpack下的AOP式无侵入注入
2017/11/12 Javascript
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
2019/07/10 jQuery
layui实现根据table数据判断按钮显示情况的方法
2019/09/26 Javascript
Vue中qs插件的使用详解
2020/02/07 Javascript
在Python编程过程中用单元测试法调试代码的介绍
2015/04/02 Python
Python编写简单的HTML页面合并脚本
2016/07/11 Python
机器学习的框架偏向于Python的13个原因
2017/12/07 Python
Python任务调度利器之APScheduler详解
2020/04/02 Python
详解anaconda安装步骤
2020/11/23 Python
男女时尚与复古风格在线购物:RoseGal(全球免费送货)
2017/07/19 全球购物
创业计划书中要认真思考的问题
2013/12/28 职场文书
2014年世界艾滋病日演讲稿
2014/11/28 职场文书
优秀班集体申报材料
2014/12/25 职场文书
故宫英文导游词
2015/01/31 职场文书
乡镇团委工作总结2015
2015/05/26 职场文书
学校2016年九九重阳节活动总结
2016/04/01 职场文书
python 中的@运算符使用
2021/05/26 Python
http通过StreamingHttpResponse完成连续的数据传输长链接方式
2022/02/12 Python