react-native按照汉字首字母排序

Posted halao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了react-native按照汉字首字母排序相关的知识,希望对你有一定的参考价值。

问题讨论详情:https://github.com/facebook/react-native/issues/12597

 

问题描述:

JS中有一个String的内置函数:String.prototype.localeCompare()返回一个数字来指示一个参考字符串是否在排序顺序前面或之后或与给定字符串相同。

1 a.nickName.localeCompare(b.nickName, ‘zh-Hans-CN‘, {sensitivity: ‘accent‘})

react-native环境下,此函数的返回值在ios上正常,在androiddebug模式下正常,在Androidrelease模式下有误。问题原因是AndroidjavascriptCore引擎的版本导致的问题。

 

解决方案:

推荐字典:https://github.com/sxei/pinyinjs

 

用字典先获取汉字首字母,再用localeCompare按照英文首字母排序。

示例用法:

1 require(‘../api/pinyinJs/dict/pinyin_dict_firstletter‘)
2 require(‘../api/pinyinJs/pinyinUtil‘)
3 
4 ...
5 lockData[0].sort((a, b) => {
6   return pinyinUtil.getFirstLetter(a.nickName).localeCompare(pinyinUtil.getFirstLetter(b.nickName))
7 })
8 ...

 

 

以上是关于react-native按照汉字首字母排序的主要内容,如果未能解决你的问题,请参考以下文章

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

mysql 中将汉字按照首字母排序

C# 获取汉字拼音首字母

vue中将汉字按照首字母排序,也适用于其他地方,但不适用多音字

ORACLE中用某个字段的首字母排序

localeCompare按首字母排序汉字