收藏
回答

ios 与Android 使用 localeCompare表现形式不同

框架类型 问题类型 操作系统版本 手机型号 微信版本
小程序 Bug ios 12 ios android 6.7.2

ios版本与安卓版本使用以下代码出现两种不同的表现形式:

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

curr.names.push(item2);

}




源码 :


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, names:[]};

arr.forEach(function(item2,j){

if(item2.name.substring(1,0) == letters[i-1]){

curr.names.push(item2);

curr.letter=letters[i-1]

}

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

curr.names.push(item2);

console.log(item2,'item2')


}

});

if(curr.names.length) {

segs.push(curr);

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

return a.name.localeCompare(b.name);

});

}

});

return segs;

}


最后一次编辑于  2018-09-25
回答关注问题邀请回答
收藏

3 个回答

  • 韬々
    韬々
    置顶回答2018-09-27

    这个问题一直都有,属于操作系统之间的差异问题。这种原生方法上的问题暂时还不好修复。



    2018-09-27
    有用
    回复 6
    • Yang👀
      Yang👀
      2018-09-27

      已解决,谢谢

      2018-09-27
      回复
    • kevin
      kevin
      2018-12-29回复Yang👀

      怎么解决的

      2018-12-29
      回复
    • 陈赞
      陈赞
      2019-07-14回复Yang👀
      怎么解决的?好歹说下啊,大哥
      2019-07-14
      回复
    • 陈波
      陈波
      2019-11-15
      怎么解决的啊楼主。。这边也遇到了一样的问题。
      2019-11-15
      回复
    • 神经蛙
      神经蛙
      2023-11-10
      留图不留种,*万人捅
      2023-11-10
      回复
    查看更多(1)
  • Yang👀
    Yang👀
    2018-09-25


    开发工具正常显示排名分组,但是安卓机出现分组混乱现象:如图

    开发工具以及ios真机测试显示正常:



    安卓真机测试(小米 5s):

    2018-09-25
    有用 2
    回复
  • 疯狂的小辣椒
    疯狂的小辣椒
    2018-09-25

    你好,请提供一下出现问题的机型和微信版本,以及能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

    2018-09-25
    有用
    回复 3
登录 后发表内容