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对象和数组
May 25 Javascript
jQuery实现密保互斥问题解决方案
Aug 16 Javascript
jquery实现点击消失的代码
Mar 03 Javascript
Bootstrap基础学习
Jun 16 Javascript
适用于javascript开发者的Processing.js入门教程
Feb 24 Javascript
JS中去掉array中重复元素的方法
May 26 Javascript
vuejs父子组件之间数据交互详解
Aug 09 Javascript
VueJS组件之间通过props交互及验证的方式
Sep 04 Javascript
在create-react-app中使用sass的方法示例
Oct 01 Javascript
javascript中的with语句学习笔记及用法
Feb 17 Javascript
jQuery实现简单评论区功能
Oct 26 jQuery
浅谈react useEffect闭包的坑
Jun 08 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+DBM的同学录程序(2)
2006/10/09 PHP
php和javascript之间变量的传递实现代码
2012/12/19 PHP
Codeigniter(CI)框架分页函数及相关知识
2014/11/03 PHP
WebQQ最新登陆协议的用法
2014/12/22 PHP
FormValidate 表单验证功能代码更新并提供下载
2008/08/23 Javascript
javascript 基础篇2 数据类型,语句,函数
2012/03/14 Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
2014/05/04 Javascript
text-align:justify实现文本两端对齐 兼容IE
2015/08/19 Javascript
Angular ng-repeat指令实例以及扩展部分
2016/12/26 Javascript
JavaScript用JSONP跨域请求数据实例详解
2017/01/06 Javascript
利用Vue v-model实现一个自定义的表单组件
2017/04/27 Javascript
nodejs中art-template模板语法的引入及冲突解决方案
2017/11/07 NodeJs
vue中改变选中当前项的显示隐藏或者状态的实现方法
2018/02/08 Javascript
vue-lazyload图片延迟加载插件的实例讲解
2018/02/09 Javascript
详解JWT token心得与使用实例
2019/08/02 Javascript
JavaScript封装单向链表的示例代码
2020/09/17 Javascript
[01:16:28]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第二场 2月23日
2021/03/11 DOTA
使用python Django做网页
2013/11/04 Python
Python实现一个简单的验证码程序
2017/11/03 Python
给你选择Python语言实现机器学习算法的三大理由
2017/11/15 Python
python爬取m3u8连接的视频
2018/02/28 Python
使用python读取csv文件快速插入数据库的实例
2018/06/21 Python
基于torch.where和布尔索引的速度比较
2020/01/02 Python
Django实现从数据库中获取到的数据转换为dict
2020/03/27 Python
Python基于xlutils修改表格内容过程解析
2020/07/28 Python
Python基于xlrd模块处理合并单元格
2020/07/28 Python
奇怪的鱼:Weird Fish
2018/03/18 全球购物
英国豪华装饰照明品牌的在线零售商:Inspyer Lighting
2019/12/10 全球购物
同步和异步有何异同,在什么情况下分别使用他们?
2012/12/28 面试题
2014全国两会学习心得体会2000字
2014/03/10 职场文书
儿童生日会策划方案
2014/05/15 职场文书
建筑安全责任书范本
2014/07/24 职场文书
移交协议书
2014/08/19 职场文书
党的群众路线教育实践活动党员个人剖析材料
2014/10/08 职场文书
教师节主题班会方案
2015/08/17 职场文书
化工厂员工工作总结
2015/10/15 职场文书