react根据中文获取拼音_react-native按照汉字首字母排序

问题描述:

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

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

在react-native环境下,此函数的返回值在IOS上正常,在Android的debug模式下正常,在Android的release模式下有误。问题原因是Android的JavaScriptCore引擎的版本导致的问题。

解决方案:

用字典先获取汉字首字母,再用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 ...

标签:pinyinUtil,react,首字母,localeCompare,Android,nickName,native

来源: https://www.cnblogs.com/halao/p/12019075.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值