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 相关文章推荐
JS中处理与当前时间间隔的函数代码
May 23 Javascript
JS对象与json字符串格式转换实例
Oct 28 Javascript
JS实现带圆弧背景渐变效果的导航菜单代码
Oct 13 Javascript
程序员必知35个jQuery 代码片段
Nov 05 Javascript
浅谈javascript运算符——条件,逗号,赋值,()和void运算符
Jul 15 Javascript
基于javascript中的typeof和类型判断(详解)
Oct 27 Javascript
Angular学习教程之RouterLink花式跳转
May 03 Javascript
javascript对HTML字符转义与反转义
Dec 13 Javascript
Node.js如何对SQLite的async/await封装详解
Feb 14 Javascript
Vue结合后台导入导出Excel问题详解
Feb 19 Javascript
详解如何使用router-link对象方式传递参数?
May 02 Javascript
JS绘图Flot应用图形绘制异常解决方案
Oct 16 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
Laravel框架Auth用户认证操作实例分析
2019/09/29 PHP
laravel请求参数校验方法
2019/10/10 PHP
Prototype使用指南之form.js
2007/01/10 Javascript
JS组件系列之Bootstrap table表格组件神器【终结篇】
2016/05/10 Javascript
BootStrap 智能表单实战系列(二)BootStrap支持的类型简介
2016/06/13 Javascript
使用jquery/js获取iframe父子级、同级获取元素的方法
2016/08/05 Javascript
JavaScript中removeChild 方法开发示例代码
2016/08/15 Javascript
JavaScript的new date等日期函数在safari中遇到的坑
2016/10/24 Javascript
Canvas + JavaScript 制作图片粒子效果
2017/02/08 Javascript
关于vue.js过渡css类名的理解(推荐)
2017/04/10 Javascript
理解Angular的providers给Http添加默认headers
2017/07/04 Javascript
Angularjs实现控制器之间通信方式实例总结
2018/03/27 Javascript
基于js中的存储键值对以及注意事项介绍
2018/03/30 Javascript
vue中axios的封装问题(简易版拦截,get,post)
2018/06/15 Javascript
vue+Element实现搜索关键字高亮功能
2019/05/28 Javascript
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
2019/11/29 Javascript
解决antd datepicker 获取时间默认少8个小时的问题
2020/10/29 Javascript
python基于右递归解决八皇后问题的方法
2015/05/25 Python
Python3.6简单反射操作示例
2018/06/14 Python
浅谈pandas用groupby后对层级索引levels的处理方法
2018/11/06 Python
在Python运行时动态查看进程内部信息的方法
2019/02/22 Python
python实现列表中最大最小值输出的示例
2019/07/09 Python
python3.8 微信发送服务器监控报警消息代码实现
2019/11/05 Python
python读取文件指定行内容实例讲解
2020/03/02 Python
解决paramiko执行命令超时的问题
2020/04/16 Python
Python Socket TCP双端聊天功能实现过程详解
2020/06/15 Python
全面总结使用CSS实现水平垂直居中效果的方法
2016/03/10 HTML / CSS
德国净水壶和滤芯品牌:波尔德PearlCo(家用净水器)
2020/04/29 全球购物
银行实习生的自我评价
2014/01/13 职场文书
工作个人的自我评价
2014/01/14 职场文书
初中作文评语大全
2014/04/23 职场文书
李开复演讲稿
2014/05/24 职场文书
幼儿园清明节活动总结
2014/07/04 职场文书
租房安全协议书
2014/08/20 职场文书
干部作风建设年活动剖析材料
2014/10/23 职场文书
大卫科波菲尔读书笔记
2015/06/30 职场文书