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 相关文章推荐
WordPress 照片lightbox效果的运用几点
Jun 22 Javascript
jquery.combobox中文api和例子,修复了上面的小bug
Mar 28 Javascript
JavaScript代码简单实现求杨辉三角给定行的最大值
Oct 29 Javascript
原生js实现移动端瀑布流式代码示例
Dec 18 Javascript
基于Bootstrap里面的Button dropdown打造自定义select
May 30 Javascript
Vue2.0组件间数据传递示例
Mar 07 Javascript
简单谈谈axios中的get,post方法
Jun 25 Javascript
使用JavaScript实现一个小程序之99乘法表
Sep 21 Javascript
Vue组件库发布到npm详解
Feb 17 Javascript
JsChart组件使用详解
Mar 04 Javascript
layui 数据表格 根据值(1=业务,2=机构)显示中文名称示例
Oct 26 Javascript
原生js实现的观察者和订阅者模式简单示例
Apr 18 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 strlen mb_strlen计算中英文混排字符串长度
2009/07/10 PHP
php不用内置函数对数组排序的两个算法代码
2010/02/08 PHP
php中print(),print_r(),echo()的区别详解
2014/12/01 PHP
php抽象类和接口知识点整理总结
2019/08/02 PHP
解决laravel session失效的问题
2019/10/14 PHP
PHP8.0新功能之Match表达式的使用
2020/07/19 PHP
jQuery中创建实例与原型继承揭秘
2011/12/21 Javascript
Js保留小数点的4种效果实现代码分享
2014/04/12 Javascript
angularjs中的e2e测试实例
2014/12/06 Javascript
JS数组array元素的添加和删除方法代码实例
2015/06/01 Javascript
详解jQuery Mobile自定义标签
2016/01/06 Javascript
深入理解Javascript中的自执行匿名函数
2016/06/03 Javascript
常用的javascript设计模式
2017/01/11 Javascript
BootStrap table删除指定行的注意事项(笔记整理)
2017/02/05 Javascript
微信小程序 Nginx环境配置详细介绍
2017/02/14 Javascript
微信小程序中form 表单提交和取值实例详解
2017/04/20 Javascript
原生JavaScript实现的简单放大镜效果示例
2018/02/07 Javascript
Vue入门之数量加减运算操作示例
2018/12/11 Javascript
微信小程序用户授权,以及判断登录是否过期的方法
2019/05/10 Javascript
解决Layui中templet中a的onclick参数传递的问题
2019/09/20 Javascript
使用python实现strcmp函数功能示例
2014/03/25 Python
Python爬取国外天气预报网站的方法
2015/07/10 Python
Python操作Oracle数据库的简单方法和封装类实例
2018/05/07 Python
python3实现多线程聊天室
2018/12/12 Python
Python如何对XML 解析
2020/06/28 Python
Linux安装Python3如何和系统自带的Python2并存
2020/07/23 Python
python Timer 类使用介绍
2020/12/28 Python
python中pivot()函数基础知识点
2021/01/03 Python
HTML5中外部浏览器唤起微信分享功能的代码
2020/09/15 HTML / CSS
园长自我鉴定
2013/10/06 职场文书
网吧收银员岗位职责
2013/12/14 职场文书
端午节活动总结报告
2015/02/11 职场文书
springboot + mongodb 通过经纬度坐标匹配平面区域的方法
2021/11/01 MongoDB
Windows11插耳机没反应怎么办? win11耳机没声音的多种解决办法
2021/11/21 数码科技
Redis 中使用 list,streams,pub/sub 几种方式实现消息队列的问题
2022/03/16 Redis
新的CSS 伪类函数 :is() 和 :where()示例详解
2022/08/05 HTML / CSS