var arr = ['Edison','白百合','Angelbaby','陈冠希','Duncan'];
//原数组首字符分别是 E B A C D
//想得到排序后的数组(首字符排序 A B C D E)
['Angelbaby','白百合','陈冠希','Duncan','Edison']
var arr = ['Edison','白百合','Angelbaby','陈冠希','Duncan'];
//原数组首字符分别是 E B A C D
//想得到排序后的数组(首字符排序 A B C D E)
['Angelbaby','白百合','陈冠希','Duncan','Edison']
核心是汉字转换拼音,但是由于汉字的排序不规律,一般需要一个庞大的字典库,浏览器加载不现实,所以一般拼音转换需要依赖后台。
GITHUB上找到一个很短小的拼音转换工具,利用浏览器的汉字排序方法,加上同音字的拼音字典,节省了大量的字典,很取巧,如果你不需要考虑兼容性,而且在中文环境下,可以考虑下,GZIP我看了才4.1K。
你这个问题不是一两句能说清楚的了
首先拆开看你要排列的对象有两个,一个是英文名字,一个是中文名字
英文的好处理,ABCD都能截取,中文就复杂了,设计转码需要引用转码的jq库
原理就是每个中文都有对应的ASCII码,也能对应的转成Unicode码,最后操作排序的是这些转码。
给你个地址吧希望对你有帮助:
http://www.cnblogs.com/alex-w...
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
你这样很难排序的,至少要带一个标识。
像这种格式: