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 iframe内部出滚动条
Feb 11 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
Jan 14 Javascript
jQuery UI库中dialog对话框功能使用全解析
Apr 23 Javascript
jQuery dataTables与jQuery UI 对话框dialog的使用教程
Sep 02 Javascript
js操作浏览器的参数方法
Jan 21 Javascript
Input文本框随着输入内容多少自动延伸的实现
Feb 15 Javascript
ES6正则表达式扩展笔记
Jul 25 Javascript
在vscode中统一vue编码风格的方法
Feb 22 Javascript
详解在React中跨组件分发状态的三种方法
Aug 09 Javascript
vue19 组建 Vue.extend component、组件模版、动态组件 的实例代码
Apr 04 Javascript
简述pm2常用命令集合及配置文件说明
May 30 Javascript
微信小程序实现写入读取缓存详解
Aug 30 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
xml在joomla表单中的应用详解分享
2012/07/19 PHP
php设计模式之简单工厂模式详解
2014/09/04 PHP
php出现web系统多域名登录失败的解决方法
2014/09/30 PHP
图片连续滚动代码[兼容IE/firefox]
2009/06/11 Javascript
jquery animate实现鼠标放上去显示离开隐藏效果
2013/07/21 Javascript
jQuery prev ~ siblings选择器使用介绍
2013/08/09 Javascript
innerHTML在IE中报错解决方案
2014/12/15 Javascript
jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
2016/02/19 Javascript
深入理解JQuery循环绑定事件
2016/06/02 Javascript
Jquery实现上下移动和排序代码
2016/10/17 Javascript
JS中利用swiper实现3d翻转幻灯片实例代码
2017/08/25 Javascript
微信小程序实现轮播图效果
2017/09/07 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
2017/11/17 Javascript
Vue 将后台传过来的带html字段的字符串转换为 HTML
2018/03/29 Javascript
微信小程序中使用wxss加载图片并实现动画效果
2018/08/13 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
2019/07/20 Javascript
jQuery实现的记住帐号密码功能完整示例
2019/08/03 jQuery
详解为element-ui的Select和Cascader添加弹层底部操作按钮
2020/02/07 Javascript
非常漂亮的js烟花效果
2020/03/10 Javascript
实例讲解Python的函数闭包使用中应注意的问题
2016/06/20 Python
Python编程实现的图片识别功能示例
2017/08/03 Python
python实现微信跳一跳辅助工具步骤详解
2018/01/04 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
2019/05/27 Python
python实现淘宝购物系统
2019/10/25 Python
Python使用sqlite3模块内置数据库
2020/05/07 Python
Python 绘制可视化折线图
2020/07/22 Python
详解解决jupyter不能使用pytorch的问题
2021/02/18 Python
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
2016/08/25 HTML / CSS
精彩的大学生自我评价
2013/11/17 职场文书
农救科工作职责
2013/11/27 职场文书
会计系毕业生求职信
2014/05/28 职场文书
2014村党支部书记党建工作汇报材料
2014/11/02 职场文书
营销计划书
2015/01/17 职场文书
小升初自荐信范文
2015/03/05 职场文书
商务英语求职信范文
2015/03/19 职场文书
python计算列表元素与乘积详情
2022/08/05 Python