最近需要做一个类似于微信好友列表的界面,后端只返回简单的查询结果,如何在后端不提供汉字按拼音首字母排序结果的情况下,前端自行将汉字按拼音首字母排序,有什么好的开源类库,还是有什么好的汉字与字母的映射表或编码表可用。
最近需要做一个类似于微信好友列表的界面,后端只返回简单的查询结果,如何在后端不提供汉字按拼音首字母排序结果的情况下,前端自行将汉字按拼音首字母排序,有什么好的开源类库,还是有什么好的汉字与字母的映射表或编码表可用。
if((!zh[i-1] || zh[i-1].localeCompare(item2,'zh') <= 0) && item2.localeCompare(zh[I],'zh') == -1)
这样才能在某些版本的chrome浏览器中正常使用,小程序中测试好用(模拟器,1.9.1)
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
楼主这个问题很不错,中文拼音排序一直都是很有趣的一个问题。推荐使用这个函数
String.prototype.localeCompare()
,链接 MDN。给题主分享一下我之前弄过的(代码不是我原创,也是模仿别人写的),首先用 localeCompare 试下拼音排序:
然后根据 26 个英文字母分组排序,函数如下,
测试:
结果:
[{"letter":"a","data":["啊","爱","按"]},{"letter":"b","data":["不"]},{"letter":"d","data":["懂"]},{"letter":"w","data":["我"]},{"letter":"x","data":["县","选"]},{"letter":"y","data":["呀","已"]}]
这个函数还有很多坑要爬,比如中英文混搭排序等,祝题主好运。