问题描述
- js中文字符串数组排序
-
RT注:
1.网上看到的很多大部分是说用a.sort(function(a,b){return a.localeCompare(b)});//汉字拼音排序方法
2.但事实上,如一位网友所说,localeCompare函数并不可靠,所有的帖子基本上都是以讹传讹,换句话说,localeCompare函数根本就不能对中文字符串数组进行排序
解决方案
阿三4,曾,龚,李四2,王五3,张,张三1
曾是多音字,也念ceng
解决方案二:
你说不可靠是怎么个不可靠?不是能正确排序吗。。
var a = ['你好','a','总过','伦敦'];
a.sort(function (a, b) { return a.localeCompare(b) });
console.log(a)//["a", "伦敦", "你好", "总过"]
解决方案三:
例如,下面的代码的排序结果是:
张三1,李四2,王五3,阿三4,曾,龚,张
阿三4,曾,龚,李四2,王五3,张,张三1 //显然排序之后是错误的
<script type="text/javascript">
var arr = ["张三1","李四2","王五3","阿三4","曾","龚","张"];
document.write(arr+"<br/>");
arr.sort(function(a,b){
return a.localeCompare(b);
});
document.write(arr);
</script>
解决方案四:
这里有详细解释
http://bbs.csdn.net/topics/350060668
解决方案五:
用老外的东西排中文顺序本来就不靠谱。你可以找个专门的jar包解决问题。
时间: 2024-10-28 11:41:28