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 相关文章推荐
Jquery实现弹出层分享微博插件具备动画效果
Apr 03 Javascript
基于编写jQuery的无缝滚动插件
Aug 02 Javascript
node.js中的fs.unlink方法使用说明
Dec 15 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
Jun 25 Javascript
jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)
Nov 09 Javascript
AngularJS入门教程之Helloworld示例
Dec 25 Javascript
微信小程序 共用变量值的实现
Jul 12 Javascript
zepto.js 实时监听输入框的方法
Dec 04 Javascript
vue通过指令(directives)实现点击空白处收起下拉框
Dec 06 Javascript
javascript实现倒计时效果
Feb 17 Javascript
微信小程序收藏功能的实现代码
Jun 19 Javascript
微信小程序实现选项卡滑动切换
Oct 22 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脚本数据库功能详解(中)
2006/10/09 PHP
《PHP边学边教》(01.开篇――准备工作)
2006/12/13 PHP
PHP5函数小全(分享)
2013/06/06 PHP
使用PHP反射机制来构造&quot;CREATE TABLE&quot;的sql语句
2019/03/21 PHP
javascript preload&amp;lazy load
2010/05/13 Javascript
Javascript开发之三数组对象实例介绍
2012/11/12 Javascript
如何使Chrome控制台支持多行js模式——意外发现
2013/06/13 Javascript
jquery仿QQ商城带左右按钮控制焦点图片切换滚动效果
2013/06/27 Javascript
javascipt:filter过滤介绍及使用
2014/09/10 Javascript
javascript与Python快速排序实例对比
2015/08/10 Javascript
jquery专业的导航菜单特效代码分享
2015/08/29 Javascript
jQuery控制DIV层实现由大到小,由远及近动画变化效果
2015/10/09 Javascript
JQuery fileupload插件实现文件上传功能
2016/03/18 Javascript
socket.io实现在线群聊功能
2017/04/07 Javascript
JavaScript数据结构中串的表示与应用实例
2017/04/12 Javascript
将angular-ui的分页组件封装成指令的方法详解
2017/05/10 Javascript
解决v-for中使用v-if或者v-bind:class失效的问题
2018/09/25 Javascript
React学习之受控组件与数据共享实例分析
2020/01/06 Javascript
js实现全选和全不选功能
2020/07/28 Javascript
跟老齐学Python之Import 模块
2014/10/13 Python
python获取文件扩展名的方法
2015/07/06 Python
python实现多进程代码示例
2018/10/31 Python
nginx搭建基于python的web环境的实现步骤
2020/01/03 Python
部署Django到阿里云服务器教程示例
2020/06/03 Python
Web时代变迁及html5与html4的区别
2016/01/06 HTML / CSS
丝芙兰加拿大官方网站:SEPHORA加拿大
2018/11/20 全球购物
专业实习自我鉴定
2013/10/29 职场文书
纪检监察建议书
2014/05/19 职场文书
旅游节目策划方案
2014/05/26 职场文书
物业工程部经理岗位职责
2015/04/09 职场文书
党员证明模板
2015/06/19 职场文书
退休欢送会主持词
2015/07/01 职场文书
2016年圣诞节活动总结范文
2016/04/01 职场文书
浅谈Redis主从复制以及主从复制原理
2021/05/29 Redis
解决pytorch 损失函数中输入输出不匹配的问题
2021/06/05 Python
win10清理dns缓存
2022/04/19 数码科技