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 相关文章推荐
js多级树形弹出一个小窗口层(非常好用)实例代码
Mar 19 Javascript
js 固定悬浮效果实现思路代码
Aug 02 Javascript
jQuery实现鼠标经过图片预览大图效果
Apr 10 Javascript
Jquery实现的角色左右选择特效
May 21 Javascript
js实现touch移动触屏滑动事件
Apr 17 Javascript
jQuery表格插件datatables用法汇总
Mar 29 Javascript
js将json格式的对象拼接成复杂的url参数方法
May 25 Javascript
js 提交form表单和设置form表单请求路径的实现方法
Oct 25 Javascript
AngularJS页面带参跳转及参数解析操作示例
Jun 28 Javascript
简单的网页广告特效实例
Aug 19 Javascript
VeeValidate在vue项目里表单校验应用案例
May 09 Javascript
vue+springboot实现项目的CORS跨域请求
Sep 05 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中最简单的字符串匹配算法
2014/12/16 PHP
discuz图片顺序混乱解决方案
2015/07/29 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
关于jQuery中的end()使用方法
2011/07/10 Javascript
jquery中的ajax方法怎样通过JSONP进行远程调用
2014/05/04 Javascript
使用JavaScript 实现的人脸检测
2015/03/24 Javascript
javascript引用类型指针的工作方式
2015/04/13 Javascript
基于jQuery实现咖啡订单管理简单应用
2017/02/10 Javascript
JS和canvas实现俄罗斯方块
2017/03/14 Javascript
js使用swiper实现层叠轮播效果实例代码
2018/12/12 Javascript
jQuery实现当拉动滚动条到底部加载数据的方法分析
2019/01/24 jQuery
详解nodejs http请求相关总结
2019/03/31 NodeJs
layui监听工具栏的实例(操作列表按钮)
2019/09/10 Javascript
[01:05:12]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS CIS-GAME
2014/05/21 DOTA
[01:18:31]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第一场 1月10日
2021/03/11 DOTA
python爬取51job中hr的邮箱
2016/05/14 Python
python简单操作excle的方法
2018/09/12 Python
python之消除前缀重命名的方法
2018/10/21 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
2019/02/26 Python
python flask 如何修改默认端口号的方法步骤
2019/07/12 Python
pytorch 多分类问题,计算百分比操作
2020/07/09 Python
html5简介及新增功能介绍
2020/05/18 HTML / CSS
Needle & Thread官网:英国仙女品牌
2018/01/13 全球购物
介绍一下结构化程序设计方法和面向对象程序设计方法的区别
2012/06/27 面试题
工厂保洁员岗位职责
2013/12/04 职场文书
经济管理专业自荐信
2013/12/30 职场文书
中学学校门卫岗位职责
2014/08/15 职场文书
工作时间擅自离岗检讨书
2014/10/24 职场文书
党委班子纠正“四风”问题整改措施
2014/10/28 职场文书
小学优秀教师事迹材料
2014/12/16 职场文书
社区法制宣传月活动总结
2015/05/07 职场文书
导游词之泰山玉皇顶
2019/12/23 职场文书
Css预编语言及区别详解
2021/04/25 HTML / CSS
springboot+VUE实现登录注册
2021/05/27 Vue.js
Python如何识别银行卡卡号?
2021/06/10 Python
Mysql表数据比较大情况下修改添加字段的方法实例
2022/06/28 MySQL