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+JSon 无刷新分页实现代码
Apr 01 Javascript
jQuery学习笔记之jQuery的DOM操作
Dec 22 Javascript
js 操作select和option常用代码整理
Dec 13 Javascript
纯JS实现根据CSS的class选择DOM
Mar 22 Javascript
transport.js和jquery冲突问题的解决方法
Feb 10 Javascript
javascript实现的右下角弹窗实例
Apr 24 Javascript
详解AngularJS中的作用域
Jun 17 Javascript
jquery采用oop模式class类的使用示例
Jan 22 Javascript
jQuery EasyUI中DataGird动态生成列的方法
Apr 05 Javascript
js实现图片区域可点击大小随意改变(适用移动端)代码实例
Sep 11 Javascript
JS面向对象编程基础篇(二) 封装操作实例详解
Mar 03 Javascript
vue实现轮播图帧率播放
Jan 26 Vue.js
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获得当前的脚本网址
2007/12/10 PHP
php开发留言板的CRUD(增,删,改,查)操作
2012/04/19 PHP
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
2018/11/20 PHP
PHP数组与字符串互相转换实例
2020/05/05 PHP
javascript的事件描述
2006/09/08 Javascript
基于jquery的动态创建表格的插件
2011/04/05 Javascript
WordPress中利用AJAX异步获取评论用户头像的方法
2016/01/08 Javascript
浏览器兼容的JS写法总结
2016/04/27 Javascript
JS获取IMG图片高宽的简单实例
2016/05/17 Javascript
Bootstrap中glyphicons-halflings-regular.woff字体报404错notfound的解决方法
2017/01/19 Javascript
简单谈谈Javascript函数中的arguments
2017/02/09 Javascript
移动web开发之touch事件实例详解
2018/01/17 Javascript
解决vue项目报错webpackJsonp is not defined问题
2018/03/14 Javascript
Node.js笔记之process模块解读
2018/05/31 Javascript
Javascript 之封装(Package)
2018/09/14 Javascript
微信小程序 高德地图路线规划实现过程详解
2019/08/05 Javascript
js 使用ajax设置和获取自定义header信息的方法小结
2020/03/12 Javascript
解决Echarts2竖直datazoom滑动后显示数据不全的问题
2020/07/20 Javascript
js+canvas实现画板功能
2020/09/13 Javascript
[05:04]完美世界携手游戏风云打造 卡尔工作室地图界面篇
2013/04/23 DOTA
Python 冒泡,选择,插入排序使用实例
2015/02/05 Python
python简单实现旋转图片的方法
2015/05/30 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
2017/08/30 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
2018/06/27 Python
python实现定时发送qq消息
2019/01/18 Python
解决Django中调用keras的模型出现的问题
2019/08/07 Python
pycharm 的Structure界面设置操作
2021/02/05 Python
css3实现冲击波效果的示例代码
2018/01/11 HTML / CSS
销售所有的狗狗产品:Dog.com
2016/10/13 全球购物
三星英国官网:Samsung英国
2018/09/25 全球购物
农救科工作职责
2013/11/27 职场文书
DIY蛋糕店的创业计划书范文
2013/12/26 职场文书
师德师风自我剖析材料
2014/09/27 职场文书
python基础之类方法和静态方法
2021/10/24 Python
mysql的Buffer Pool存储及原理
2022/04/02 MySQL
代码复现python目标检测yolo3详解预测
2022/05/06 Python