按拼音首字母排序

localeCompare() 方法返回一个数字来指示一个参考字符串是否在排序顺序前面或之后或与给定字符串相同。

返回一个数字表示是否 引用字符串 在排序中位于 比较字符串 的前面,后面,或者二者相同。

当 引用字符串 在 比较字符串 前面时返回 -1
当 引用字符串 在 比较字符串 后面时返回 1
相同位置时返回 0
兼容性 ie 5.5 以上都行,可以放心使用了

let list = ['张三', '李四', '王五', '赵柳']
list.sort((a, b) => a.localeCompare(b))
// list: ["李四", "王五", "张三", "赵柳"]

按拼音首字母分类

const isObject = o => Object.prototype.toString.call(o) === '[object Object]'/**** @param {array} list 数据* @param {string} key 如果 list 是对象数组,需要制定 key 来排序*/
const pySegSort = (list, key = 'text') => {if (!list || list.length === 0) return nullif (!String.prototype.localeCompare) return nullif (isObject(list[0]) && !list[0][key]) {throw new Error('对象数组需要指定 key')}const letters = 'ABCDEFGHJKLMNOPQRSTWXYZ'const zh = '阿八嚓哒妸发旮哈讥咔垃痳拏噢妑七呥扨它穵夕丫帀'.split('').map((item, i) => ({[key]: item,l: letters[i], // 字母}))const all = [...zh, ...list]all.sort((a, b) => {const c = a[key] || aconst d = b[key] || breturn c.localeCompare(d)})const res = {}let segs = []while (all.length > 0) {const cur = all.pop()if (cur.l) {if (segs.length > 0) {res[cur.l] = segssegs = []}} else {segs.unshift(cur)}}return res
}let list = ['张三', '李四', '王五', '赵柳']
const newList = pySegSort(list)
console.log(newList)
// {"Z":["张三","赵柳"],"W":["王五"],"L":["李四"]}let data = [{id: 1, name: '张三'}, {id: 2, name: '李四'}, {id: 3, name: '王五'}, {id: 4, name: '赵柳'}]
const newData = pySegSort(data, 'name)
console.log(newData)
// {"Z":[{"id":1,"name":"张三"},{"id":4,"name":"赵柳"}],"W":[{"id":3,"name":"王五"}],"L":[{"id":2,"name":"李四"}]}

汉字按拼音首字母排序相关推荐

  1. iOS searchbar实现汉字更具拼音首字母排序

    最近在做一个地图相关的应用,涉及到全国城市的切换,于是打算把这个记录下来 用到的主要东西有:百度的全国城市列表,txt格式,jasonkit数据解析第三方,tableview,searchabar,汉 ...

  2. java对汉字按照拼音首字母排序_java对象集合中某个属性的汉字进行按拼音进行排序...

    在开发中,有些时候我们要对一个集合中的对象的某个属性进行按拼音排序,便于更快的找到汉字,我采用Comparator接口,在实现这个接口里定义排序规则,取得比较对象的汉字编码,并将其转换成字符串,运用S ...

  3. android 获取拼音首字母,Android开发 - 汉字转拼音首字母

    概述 工作中经常会遇到的一些排序问题,比如 按汉字的拼音首字母排序,比如人名排序等,就要用到下面的方法了,思路: 1.获得汉字 2.将汉字转换成首字母,并记录下(必要时保存到数据库) 3.按首字母进行 ...

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

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

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

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

  6. 中文按拼音首字母排序的C++实现方案

    先介绍下背景,最近有个需求,需要将用户的好友列表按照昵称的拼音首字母排序,类似于手机电话簿的联系人.一开始建议让终端同学去做这点,毕竟终端现有的电话簿模块已经实现了,不过终端同学说电话簿是系统组件,移 ...

  7. C# 获取汉字的拼音首字母(转)

    原文:https://blog.csdn.net/younghaiqing/article/details/62417269 一种是把所有中文字符集合起来组成一个对照表:另一种是依照汉字在Unicod ...

  8. C# 获取汉字的拼音首字母和全拼(含源码)

    C# 获取汉字的拼音首字母 一种是把所有中文字符集合起来组成一个对照表:另一种是依照汉字在Unicode编码表中的排序来确定拼音的首字母.碰到多音字时就以常用的为准(第一种方法中可以自行更改,方法为手 ...

  9. (转)C# 获取汉字的拼音首字母和全拼(含源码)[A]

    https://blog.csdn.net/younghaiqing/article/details/62417269 C# 获取汉字的拼音首字母 一种是把所有中文字符集合起来组成一个对照表:另一种是 ...

最新文章

  1. 数值分析之数值稳定性篇
  2. git 分支合并_教你玩转Git-分支合并
  3. PKU 学生反馈 3
  4. 使用计算机画画需要什么软件,专业电脑绘画用的是什么工具?
  5. Java PushbackInputStream skip()方法与示例
  6. Dubbo(十二)dubbo的服务版本配置以及本地存根使用介绍
  7. 高人,不断地在营销, 有收入就是高人
  8. TStrings和TStringLists类(经典有时间整理做个小例子)
  9. Windows客户端使用教程
  10. sql server windows nt 64bit 内存占用过高
  11. 今晚8点 | 矛与盾的对决——神经网络后门攻防
  12. 怎么知道银行卡号对应的银行
  13. Spring Cache使用Redisson分布式锁解决缓存击穿问题
  14. 微信大更新,黄脸表情会动了,还能炸群!还有状态、浮窗...张小龙剧透的功能全来了...
  15. android 内部存储 其他,小米MIUI系统怎么清除内部储存空间中“其他”数据?
  16. 2022年上海落户全部方式!落户上海政策变化及条件汇总!
  17. 00后女记者的一场直播挑战,触动了多少城市年轻打工人的心
  18. 【原创】Firda+typescript 接收WX消息
  19. 标贝科技声音克隆技术赋能 定制语音功能让陪伴触手可及
  20. 租车战场没有新故事,一嗨租车能否破局?

热门文章

  1. 微信小程序订单生成支付二维码接口 code
  2. 同时打开对比两个pdf文件软件推荐
  3. PostgreSQL回归测试工具regress使用
  4. Office:你的 OneDrive 帐户存在问题?
  5. SWAN测试用例af-alg/rw-cert
  6. 《python从入门到项目实践》第六章 列表和元组 //有一个课后答案
  7. 五种常见的聚类算法总结
  8. 如何快速读懂开源代码?
  9. 虚拟机DEDECMS织梦建站
  10. 推箱子游戏 java源代码_java推箱子游戏源代码(含推箱子的判断)