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 相关文章推荐
JavaScript 和 Java 的区别浅析
Jul 31 Javascript
JavaScript伸缩的菜单简单示例
Dec 03 Javascript
原生js和jquery中有关透明度设置的相关问题
Jan 08 Javascript
JQuery EasyUI 日期控件如何控制日期选择区间
May 05 Javascript
javaScript+turn.js实现图书翻页效果实例代码
Feb 16 Javascript
解决vue 更改计算属性后select选中值不更改的问题
Mar 02 Javascript
详解VUE-地区选择器(V-Distpicker)组件使用心得
May 07 Javascript
vue项目持久化存储数据的实现代码
Oct 01 Javascript
Angular2实现的秒表及改良版示例
May 10 Javascript
vue+elementUi图片上传组件使用详解
Aug 20 Javascript
Vue项目打包压缩的实现(让页面更快响应)
Mar 10 Javascript
Ajax获取node服务器数据的完整步骤
Sep 20 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
PHP4之真OO
2006/10/09 PHP
PHP mail 通过Windows的SMTP发送邮件失败的解决方案
2009/05/27 PHP
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
2014/10/14 PHP
php获取YouTube视频信息的方法
2015/02/11 PHP
CodeIgniter集成smarty的方法详解
2016/05/26 PHP
Json对象替换字符串占位符实现代码
2010/11/17 Javascript
angular.foreach 循环方法使用指南
2015/01/06 Javascript
JS实现网页游戏中滑块响应鼠标点击移动效果
2015/10/19 Javascript
图解JavaScript中的this关键字
2020/05/28 Javascript
html+js+highcharts绘制圆饼图表的简单实例
2016/08/04 Javascript
js获取当前时间(昨天、今天、明天)
2016/11/23 Javascript
JavaScript中利用构造器函数模拟类的方法
2017/02/16 Javascript
详解Angular如何正确的操作DOM
2018/07/06 Javascript
微信小程序防止多次点击跳转(函数节流)
2019/09/19 Javascript
解决vant-UI库修改样式无效的问题
2020/11/03 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
2020/12/07 Vue.js
[09:31]2016国际邀请赛中国区预选赛Yao赛后采访 答题送礼
2016/06/27 DOTA
使用Python获取CPU、内存和硬盘等windowns系统信息的2个例子
2014/04/15 Python
解决Python中由于logging模块误用导致的内存泄露
2015/04/23 Python
Python中内建函数的简单用法说明
2016/05/05 Python
python实现日常记账本小程序
2018/03/10 Python
OpenCV+python手势识别框架和实例讲解
2018/08/03 Python
Python3对称加密算法AES、DES3实例详解
2018/12/06 Python
浅谈Django+Gunicorn+Nginx部署之路
2019/09/11 Python
Django-simple-captcha验证码包使用方法详解
2020/11/28 Python
python 数据类型强制转换的总结
2021/01/25 Python
css3实现垂直下拉动画菜单示例
2014/04/22 HTML / CSS
详解html5 canvas 微信海报分享(个人爬坑)
2018/01/12 HTML / CSS
如何打印出当前源文件的文件名以及源文件的当前行号
2015/04/05 面试题
十佳护士获奖感言
2014/02/18 职场文书
青年文明号创建承诺
2014/03/31 职场文书
2014年作风建设剖析材料
2014/10/23 职场文书
幼儿园个人师德总结
2015/02/06 职场文书
深入浅出的讲解:信号调制到底是如何实现的
2022/02/18 无线电
JS前端canvas交互实现拖拽旋转及缩放示例
2022/08/05 Javascript
Win11 Beta 22621.601 和 22622.601今日发布 KB5017384修复内容汇总
2022/09/23 数码科技