收藏
回答

姓名排序localeCompare,苹果和安卓结果不一样,救救孩子吧?

function pySegSort(arr) {

   if(!String.prototype.localeCompare)

       return null;    

   var letters = "*abcdefghjklmnopqrstwxyz".split('');  

 var zh = "阿八嚓哒妸发旮哈讥咔垃痳拏噢妑七呥扨它穵夕丫帀".split('');    

   var segs = [];    var curr;    letters.forEach(function(item,i){        curr = {letter: item, data:[]};

       arr.forEach(function(item2){  

         if((!zh[i-1] || zh[i-1].localeCompare(item2) <= 0) && item2.localeCompare(zh[i]) == -1) {

               curr.data.push(item2);            }

       });

       if(curr.data.length) {

           segs.push(curr);

           curr.data.sort(function(a,b){

               return a.localeCompare(b);

           });        }    });    return segs; }


回答关注问题邀请回答
收藏

2 个回答

  • 陈波
    陈波
    2019-11-20

    小程序貌似不支持localeCompare。。在安卓里面是不行的,需要自己去找一个汉字转拼音的工具类。具体可以看看我这篇博客。。https://blog.csdn.net/cb130248/article/details/103157467

    2019-11-20
    有用 2
    回复 1
    • 邓周
      邓周
      2019-11-20
      可以的,老铁
      2019-11-20
      回复
  • 邓周
    邓周
    2019-09-06

    this.pySegSort( [ "张1", "张3", "张4", "张三"]) 这样调用


    2019-09-06
    有用 1
    回复 3
    • 邓周
      邓周
      2019-09-06
      苹果手机好好的,安卓手机就不行了。。。
      2019-09-06
      1
      回复
    • 邓周
      邓周
      2019-09-06
      if((!zh[i-1] || zh[i-1].localeCompare(item2) <= 0) && item2.localeCompare(zh[i]) == -1) { curr.data.push(item2); } });应该就是这个判断有问题,我找了很久,不知道怎么解决
      2019-09-06
      回复
    • 陈波
      陈波
      2019-11-15
      楼主解决了嘛。我这边也出现了这种问题。。
      2019-11-15
      回复
登录 后发表内容
问题标签