最近有一个需求,就是做一个类似通讯录的玩意。这里其实前端的话网上挺多轮子的,直接改改就好了,但是有一点就是在得到汉字之后如何根据拼音的首字母排序并且分组就是一个小问题,当然解决起来也是挺简单的啰。由于我实在小程序中的实现,所以就用的是js。

首先我们需要去github上找到一个开源的汉字库,其实说白了就是一个码表,自己也可以弄,但是没有必要重复造轮子的。

首先,我找的是这个库,star人挺多的 github传送门
也有那种带声标的,但是没必要,这个库就很OK了。由于小程序这边安卓是不能使用localCompare的,所以我们还是使用码表吧。(ps:推荐使用码表,因为localCompare存在兼容性问题,与其碰到问题,不如直接就使用没问题的解决方案)

然后就很简单了,将开源库下面的那个index.js复制到你的util工具包的一个类当中,在需要的页面引入
import Pinyin from '../../utils/pinyin'
引入之后的核心工具方法如下(需要传入需要排序的中文字符数组,变量命名有点随意,不喜勿喷)

function pinyinSort(name) {var pinyinArray = new Array()for (var bukn = 0; bukn < name.length; bukn++) {var o = new Object()var ken = Pinyin.getSpell(name[bukn], function (charactor, spell) {console.log(charactor, spell);return spell[1];});o.name = name[bukn]o.pinyin = ken.split(',').join('')pinyinArray.push(o)}console.log("pinyinArray")console.log(pinyinArray)// pinyinArray = pinyinArray.sort(compare("pinyin"))let map = {title: '',datas: []}pinyinArray.forEach((item, index) => {if (!map[item.pinyin[0].toUpperCase()]) {map[item.pinyin[0].toUpperCase()] = {title: item.pinyin[0].toUpperCase(),datas: []}}map[item.pinyin[0].toUpperCase()].datas.push({name: item.name,pinyin: item.pinyin})})console.log("map")console.log(map)var turn = new Array()var letters = "*ABCDEFGHIJKLNMOPQRSTUVWXYZ".split('');for (var i = 1; i < letters.length; i++) {if (map[letters[i]]) {var obj = new Object()//自己改改命名改成自己需要的obj.title = letters[i]obj.datas = map[letters[i]].datasturn.push(obj)}}console.log("trun")console.log(turn)return turn;
}

之后前端的那个界面什么的就可以直接去git上面找了啰。关键一步都搞完了,只需要将排序好的怼上去即可。

js根据汉字拼音首字母排序分组相关推荐

  1. 数据库按照汉字拼音首字母排序

    ===>sqlserver按照汉字拼音首字母排序 select * from table order by name collate Chinese_PRC_CS_AS_KS_WS 在修改sql ...

  2. C#按汉字拼音首字母排序

    可参考以下博客. C# 使用微软的Visual Studio International Pack 类库提取汉字拼音首字母 - 影子科技 - 博客园 http://www.cnblogs.com/ya ...

  3. java按照汉字拼音首字母排序

    实现按照汉字拼音字母排序的方法有两种: 一,就是在用java代码处理 要实现汉字按首字母排序,主要是设置语言环境,如下语句设置语言环境: 这里用到了Collator类,此类实现了Comparator接 ...

  4. 通过JS取汉字拼音首字母

    Javascript实现的取中文拼音首字母,提供了多音字的选择. <html> <head> <meta http-equiv="Content-Type&qu ...

  5. js取汉字拼音首字母

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  6. mysql 按汉字拼音首字母排序或聚合

    看网上很多方法,都是转成gbk,然后截取第一个字,然后按字的gbk值的区间去获取A-Z,然后排序. ELT(INTERVAL(CONV(HEX(LEFT(CONVERT(TRIM(列名) USING ...

  7. js 根据汉字拼音首字母进行排序

    我们需要一个开源的汉字库,也就是码表.这个库就可以.git库 不想去git下载直接拉到最底下有js文件,直接复制就行. 然后页面引入 import china from '@/utils/china' ...

  8. MySQL按照汉字拼音首字母排序

    按照汉字的拼音排序,用的比较多是在人名的排序中,按照姓氏的拼音字母,从A到Z排序: 如果存储姓名的字段采用的是GBK字符集,那就好办了,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字37 ...

  9. sql语句按照汉字拼音首字母排序

    oracle : 在oracle9i中新增了按照拼音.部首.笔画排序功能.设置NLS_SORT值 SCHINESE_RADICAL_M 按照部首(第一顺序).笔划(第二顺序)排序 SCHINESE_S ...

最新文章

  1. OpenYurt — Yurtctl
  2. Powershell 命令行泄漏下一个 Windows 10 更新内容
  3. Java 9 - 17 特性解读:​Java 13
  4. tensor torch 构造_TORCH.TENSOR
  5. python的turtle怎么设置rgb颜色_Python : turtle色彩控制实例详解
  6. 藉上帝之旨,行时代之命的文学长征
  7. 如何下载linux历史版本下载,CentOS历史版本下载方法
  8. 歪枣网股票数据下载接口汇总一
  9. php private ,public protected三者的区别
  10. Java实现视频加密及播放
  11. 解除开启全局 UWP应用网络隔离限制
  12. 微信公众号自动回复消息跳转小程序
  13. python 相关系数(全)
  14. 申报2021国家高新技术企业认定,有哪些标准?
  15. IDEA 2018.3.6 修改背景图片
  16. ❤唯美满天星❤ html+css+js炫酷3D相册(含音乐/可自定义文字)程序员表白必备
  17. VC编译器与GCC编译器的区别
  18. 智能优化算法——灰狼优化算法(PythonMatlab实现)
  19. 计算机课程MOOC,高校计算机基础课程MOOC教学模式的探索
  20. 如何利用高德地图URI加载区域边界

热门文章

  1. 鱼眼摄像头标定与畸变校正(OPENCV版)
  2. python 自定义命令(entry_points)以及开发第三方库setuptools打包
  3. poi 获取excel列宽度_JAVA使用POI获取Excel的列数与行数
  4. DyGLIP:跨摄像头多目标跟踪的动态图模型
  5. fastposter v2.15.0 从繁琐到简单,简洁好用的海报生成器
  6. 【成为一个优秀的软件测试工程师】
  7. git看不到别人创建的远程分支
  8. JAVA+MySQL做一个图书信息管理系统(附源码)
  9. 养猫日记-20200423
  10. 最详尽的 Swift 代码规范指南