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 代码压缩工具小结
Feb 27 Javascript
基于javascript实现tab切换特效
Mar 29 Javascript
javascript十六进制数字和ASCII字符之间的转换方法
Dec 27 Javascript
JS常用倒计时代码实例总结
Feb 07 Javascript
js实现九宫格拼图小游戏
Feb 13 Javascript
Bootstrap table使用方法总结
May 10 Javascript
vue解决跨域路由冲突问题思路解析
Nov 03 Javascript
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
Oct 29 Javascript
关于自定义Egg.js的请求级别日志详解
Dec 12 Javascript
vue+mock.js实现前后端分离
Jul 24 Javascript
JS中比较两个Object数组是否相等方法实例
Nov 11 Javascript
JavaScript实现登录窗体
Jun 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
转生史莱姆:萌王第一次撸串开心到飞起,哥布塔撸串却神似界王神
2018/11/30 日漫
PHP编程网上资源导航
2006/10/09 PHP
PHP基于单例模式实现的数据库操作基类
2016/01/15 PHP
Javascript 写的简单进度条控件
2008/01/22 Javascript
走出JavaScript初学困境—js初学
2008/12/29 Javascript
js获取指定日期前后的日期代码
2013/08/20 Javascript
js 通过html()及text()方法获取并设置p标签的显示值
2014/05/14 Javascript
javascript白色简洁计算器
2015/05/04 Javascript
jquery SweetAlert插件实现响应式提示框
2015/08/18 Javascript
JavaScript缓冲运动实现方法(2则示例)
2016/01/08 Javascript
D3.js实现柱状图的方法详解
2016/09/21 Javascript
学习使用bootstrap的modal和carousel
2016/12/09 Javascript
vue.js实现条件渲染的实例代码
2017/06/22 Javascript
使用taro开发微信小程序遇到的坑总结
2019/04/08 Javascript
nodejs中各种加密算法的实现详解
2019/07/11 NodeJs
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
2020/11/04 Javascript
Python中的os.path路径模块中的操作方法总结
2016/07/07 Python
Python实现Sqlite将字段当做索引进行查询的方法
2016/07/21 Python
一步步教你用Python实现2048小游戏
2017/01/19 Python
python 除法保留两位小数点的方法
2018/07/16 Python
使用 python pyautogui实现鼠标键盘控制功能
2019/08/04 Python
python程序需要编译吗
2020/06/19 Python
HTML5 Blob对象的具体使用
2020/05/22 HTML / CSS
阿玛瑞酒店中文官方网站:Amari.com
2018/02/13 全球购物
adidas瑞典官方网站:购买阿迪达斯鞋子和运动服
2019/12/11 全球购物
应届生个人求职信模板
2013/11/26 职场文书
群众路线教育实践活动方案
2014/02/02 职场文书
避暑山庄导游词
2015/02/04 职场文书
英文自荐信范文
2015/03/25 职场文书
中学教师师德师风承诺书
2015/04/28 职场文书
2016年秋季运动会广播稿
2015/12/21 职场文书
《秦兵马俑》教学反思
2016/02/24 职场文书
幼儿园中班教学反思
2016/03/03 职场文书
自愿离婚协议书范本2016
2016/03/18 职场文书
vue elementUI表格控制对应列
2022/04/13 Vue.js
windows server 2012安装FTP并配置被动模式指定开放端口
2022/06/10 Servers