迷茫2017-04-11 13:30:422楼

楼主这个问题很不错,中文拼音排序一直都是很有趣的一个问题。推荐使用这个函数 String.prototype.localeCompare(),链接 MDN。

给题主分享一下我之前弄过的(代码不是我原创,也是模仿别人写的),首先用 localeCompare 试下拼音排序:

var array = ['武汉', '北京', '上海', '天津'];

array.sort(

function compareFunction(param1, param2) {

return param1.localeCompare(param2);

}

);

array // ["北京", "上海", "天津", "武汉"]

然后根据 26 个英文字母分组排序,函数如下,

function pySegSort(arr) {

if(!String.prototype.localeCompare)

return null;

var letters = "*abcdefghjklmnopqrstwxyz".split('');

var zh = "阿八嚓哒妸发旮哈讥咔垃痳拏噢妑七呥扨它穵夕丫帀".split('');

var segs = [];

var curr;

letters.forEach(function(item,i){

curr = {letter: item, data:[]};

arr.forEach(function(item2){

if((!zh[i-1] || zh[i-1].localeCompare(item2) <= 0) && item2.localeCompare(zh[i]) == -1) {

curr.data.push(item2);

}

});

if(curr.data.length) {

segs.push(curr);

curr.data.sort(function(a,b){

return a.localeCompare(b);

});

}

});

return segs;

}

测试:

pySegSort(["我","不","懂","爱","啊","按","已","呀","选","县"])

结果:

[{"letter":"a","data":["啊","爱","按"]},{"letter":"b","data":["不"]},{"letter":"d","data":["懂"]},{"letter":"w","data":["我"]},{"letter":"x","data":["县","选"]},{"letter":"y","data":["呀","已"]}]

这个函数还有很多坑要爬,比如中英文混搭排序等,祝题主好运。

php拼音分组,前端 - JavaScript如何实现汉字按拼音首字母分组拼序相关推荐

  1. 按首字母分组 python_JavaScript如何实现汉字按拼音首字母分组拼序

    楼主这个问题很不错,中文拼音排序一直都是很有趣的一个问题.推荐使用这个函数 String.prototype.localeCompare(),链接 MDN. 给题主分享一下我之前弄过的(代码不是我原创 ...

  2. JavaScript 实现汉字按拼音首字母分组拼序

    单纯只需要对中文汉字进行排序,可以使用 String.prototype.localeCompare()函数 var array = ['武汉', '北京', '上海', '天津']; array.s ...

  3. vue提取字符串中中文汉字的大写首字母

    vue提取字符串中中文汉字的大写首字母 1.需求背景 最近开发vue项目,在关于药品的项目中有个需求是要提取药品中文名称的首字母组成拼音码,例如:六味地黄丸提取首字母后是LWDHW. 解决方案 这里需 ...

  4. 工具类-汉字转为汉语拼音首字母

    汉字转换为汉语拼音首字母,英文字符不变,特殊字符丢失 支持多音字,生成方式如(长沙市长:cssc,zssz,zssc,cssz) 首先需Pinyin4j的jar包,代码如下,可直接使用 public ...

  5. 在Excel中取汉字的英文首字母或者全拼

    与上一篇文章相关,在Excel中取汉字的英文首字母 在Excel中使用,觉得麻烦的,直接点最下面,复制附件,里面有例子,非常好用非常好用 需要说明的是,代码不是我写的,原作者如果看到了可以联系我,我会 ...

  6. SQL 汉字转拼音函数(转)+将表中汉字转拼音

    [叶子函数分享五十四]汉字转拼音函数 分类: SQL函数分享系列2011-03-30 22:10 290人阅读 评论(0) 收藏 举报 /* ----------------------------- ...

  7. asp.net 将中文汉字转换为英文首字母和将汉字转换为拼音全拼

    数据库:Account 表名:Customer 列名:PinYin /// <summary>     /// 获取汉字的首字母和全拼     /// </summary>   ...

  8. sql按照汉字遇到多音字首字母排序顺序乱掉解决办法

    因为被安排做一个简单的查询中国省市地区名称并按照首字母拼音排序,起初没在意,后来发现"重庆"顺序乱掉了,查看一下 表字段的排序规则是COLLATE Chinese_PRC_CI_A ...

  9. php获取中文拼音(含生僻字,多音字,音标)支持首字母,全拼

    前面文章有提到php获取中文拼音的解决方案,文章链接如下 该方法的优势在于速度够快,不依赖于任何第三方库.但不支持多音字以及音标的获取,现在将借助第三方库解决这个问题 上一篇地址 php获取中文拼音( ...

  10. Vue 汉字转大写首字母(非汉字直接输出)

    写轮子是不可能写轮子的,这辈子都不可能写轮子,只有用用大佬的代码这样子 -切格瓦拉 1.首先安装开源文件 npm install js-pinyin --save 2.成功后引入 import pin ...

最新文章

  1. 使用IDEA开发Servlet程序
  2. 关于“如何破坏单例“我说了好几种方式,面试官却说:我其实随便问问,没想到你真会
  3. 汉恩互联「绘动画室」,触摸背景墙
  4. linux nginx大量TIME_WAIT的解决办法--转
  5. Vue-CLI@4——html-webpack-plugin默认配置的获取与修改
  6. 荆州水文水位查询_【心能源】天欣公司矿井水文自动观测系统投入使用
  7. 嵌入式常见笔试题总结(2)
  8. 无法安装64位版本的office,因为在您的PC上找到了以下32位程序:microsoft visio professional 2013
  9. 关于JavaBean
  10. tomcat session失效时间
  11. Eclipse中Maven的设定
  12. 360软件管家android,360软件管家
  13. 超市称秤小票用计算机怎么算,电脑收银系统如何连接电子条码秤
  14. [C语言入门可读]学习书籍;学习工具、网站;刷题网站推荐
  15. 让笔记本的无线网卡指示灯不再狂闪的方法
  16. 使用tsx开发vue项目入门
  17. 企业邮箱怎么开通?手机微信怎么绑定公司邮箱?
  18. win10要关闭自动更新吗?看完你就有答案了
  19. __call__ 的用法
  20. VR全景照片拍摄小技巧分享

热门文章

  1. kvm几种快照的创建与删除
  2. 计算机word窗口的组成,word文件的组成
  3. mpvue小程序《校友足迹》成长记(一)
  4. LOVE2D中实现一个简单的摇杆
  5. php在线生成logo,logo在线生成 php在线生成ico文件的代码
  6. Mac 下拷贝文件到移动硬盘
  7. 天翎myAppsSetup_V4.4.sp10系统结构图
  8. 关键词策略 —关键词选择
  9. 阿里云香港服务器和大陆服务器的优缺点分析
  10. linux怎么安装台式无线网卡,linux下安装无线网卡