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中call()方法引发的对面向对象继承机制call的思考
Sep 12 Javascript
jquery动画2.元素坐标动画效果(创建一个图片走廊)
Aug 24 Javascript
jquery属性过滤选择器使用示例
Jun 18 Javascript
基于jquery扩展漂亮的下拉框可以二次修改
Nov 19 Javascript
javascript中定义私有方法说明(private method)
Jan 27 Javascript
JavaScript实现关键字高亮功能
Nov 12 Javascript
Javascript基础_嵌入图像的简单实现
Jun 14 Javascript
原生js实现验证码功能
Mar 16 Javascript
使用3D引擎threeJS实现星空粒子移动效果
Sep 13 Javascript
vue+vuex+axios+echarts画一个动态更新的中国地图的方法
Dec 19 Javascript
el-select 下拉框多选实现全选的实现
Aug 02 Javascript
JS深入学习之数组对象排序操作示例
May 01 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验证码类代码( 最新修改,完全定制化! )
2010/12/02 PHP
php实例分享之mysql数据备份
2014/05/19 PHP
PHP中unset,array_splice删除数组中元素的区别
2014/07/28 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
070823更新的一个[消息提示框]组件 兼容ie7
2007/08/29 Javascript
Javascript面向对象之四 继承
2011/02/08 Javascript
在jQuery ajax中按钮button和submit的区别分析
2012/10/07 Javascript
jquery的ajax跨域请求原理和示例
2014/05/08 Javascript
js中函数调用的两种常用方法使用介绍
2014/07/17 Javascript
浅谈jQuery的offset()方法及示例分享
2015/07/17 Javascript
javascript中日期函数new Date()的浏览器兼容性问题
2015/09/05 Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
2016/06/08 Javascript
Bootstrap Multiselect 常用组件实现代码
2017/07/09 Javascript
解决ionic和angular上拉加载的问题
2017/08/03 Javascript
jQuery实现动态添加节点与遍历节点功能示例
2017/11/09 jQuery
vue router 跳转时打开新页面的示例方法
2019/07/28 Javascript
浅析Vue中拆分视图层代码的5点建议
2019/08/15 Javascript
JavaScript进阶(二)词法作用域与作用域链实例分析
2020/05/09 Javascript
vue 通过绑定事件获取当前行的id操作
2020/07/27 Javascript
vue中配置scss全局变量的步骤
2020/12/28 Vue.js
原生js实现滑块区间组件
2021/01/20 Javascript
[49:21]2018DOTA2亚洲邀请赛3月30日 小组赛B组 Effect VS iG
2018/03/31 DOTA
Python实现给qq邮箱发送邮件的方法
2015/05/28 Python
浅谈numpy中linspace的用法 (等差数列创建函数)
2017/06/07 Python
在Python中输入一个以空格为间隔的数组方法
2018/11/13 Python
PyQT5速成教程之Qt Designer介绍与入门
2020/11/02 Python
好药师网上药店:安全合法的网上药品零售药房
2017/02/15 全球购物
Bose美国官网:购买Bose耳机和音箱
2019/03/10 全球购物
Craghoppers德国官网:户外和旅行服装
2020/02/14 全球购物
《匆匆》教学反思
2014/02/22 职场文书
2014年3.15团委活动总结
2014/03/16 职场文书
互联网创业计划书写作技巧攻略
2014/03/23 职场文书
团日活动总结怎么写
2014/06/25 职场文书
高中生社会实践心得体会
2016/01/14 职场文书
2019年关于小学生课外阅读情况的分析报告
2019/12/02 职场文书
python 实现德洛内三角剖分的操作
2021/04/22 Python