B_qxzb
B_qxzb
采纳率41.2%
2015-04-17 09:04

js中文字符串数组排序

2
已采纳

RT

注:
1.网上看到的很多大部分是说用a.sort(function(a,b){return a.localeCompare(b)});//汉字拼音排序方法
2.但事实上,如一位网友所说,localeCompare函数并不可靠,所有的帖子基本上都是以讹传讹,换句话说,localeCompare函数根本就不能对中文字符串数组进行排序

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

5条回答

  • danielinbiti danielinbiti 6年前

    阿三4,曾,龚,李四2,王五3,张,张三1
    曾是多音字,也念ceng

    点赞 1 评论 复制链接分享
  • ll85549669 小天丿 6年前

    用老外的东西排中文顺序本来就不靠谱。你可以找个专门的jar包解决问题。

    点赞 评论 复制链接分享
  • danielinbiti danielinbiti 6年前
    点赞 评论 复制链接分享
  • B_qxzb B_qxzb 6年前

    例如,下面的代码的排序结果是:
    张三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>
    
    点赞 评论 复制链接分享
  • showbo GoCityPass新加坡曼谷通票 6年前

    你说不可靠是怎么个不可靠?不是能正确排序吗。。

        var a = ['你好','a','总过','伦敦'];
    
        a.sort(function (a, b) { return a.localeCompare(b) });
        console.log(a)//["a", "伦敦", "你好", "总过"]
    
    点赞 评论 复制链接分享

相关推荐