小程序中英文混合排序问题解决


Posted in Javascript onAugust 02, 2019

小程序中英文混合排序问题

在开发一个手机联系人列表的功能时,遇到需求是需要将联系人列表按照拼音顺序排序。而联系人列表是会出现中英文混合的情况。于是遇到了问题。

小程序无法直接中文进行排序

localeCompare函数排序出来的结果不正确

在遇到这个问题的时候,也去网上查过不少,本来觉得比较好用的就是例佣localeCompare函数去进行排序。但是在实际开发的时候发现该函数的排列结果跟网上的不同。(大概是h5跟小程序的区别吧,我也不是很了解~)

最终参考了字母表的方式,采取了类似的做法来实现我的需求,代码如下

/* 返回拼音的首字母大写 */
 getCName(_char) {
  if (_char <= 'z' && _char >= 'A') {
   return _char.toUpperCase();
  }
  for (var item in pinyin) {
   if (pinyin[item].indexOf(_char) != -1)
    return item[0].toUpperCase();
  }
 },
  /* 对二维数组排序,并返回处理完逻辑的结果 */
 sortTwoArr(arr) {
  let res_arr=[];
  for (var j = 0; j < arr.length; j++) {
   for (var i = 0; i < arr.length - 1; i++) {
    if (arr[i+1][0] < arr[i][0]) {
     let temp = arr[i][0];
     arr[i][0] = arr[i+1][0];
     arr[i+1][0] = temp;
     
     let temp_ = arr[i][1];
     arr[i][1] = arr[i+1][1];
     arr[i+1][1] = temp_;
    }
   }
  }  
  arr.forEach((item)=>{
   res_arr.push(item[1])
  })
  return res_arr;
 }

在onLoad()函数调用

/**
  * 生命周期函数--监听页面加载
  */
 onLoad: function(options) {
  let arr = ['猫', '狐狸', '鸟', '大雁', 'A','彦杰','燕','朕成功','陈奕迅'];
  let arr1 = [];
  arr.forEach((item, index) => {
   var _char = item.substr(0, 1);
   let temp = [this.getCName(_char), item]
   arr1.push(temp);
  })
  console.log(this.sortTwoArr(arr1))
 },

结果演示

小程序中英文混合排序问题解决

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JScript的条件编译
May 29 Javascript
checkbox全选/取消全选以及checkbox遍历jQuery实现代码
Dec 02 Javascript
js网页版计算器的简单实现
Jul 02 Javascript
js和jquery使按钮失效为不可用状态的方法
Jan 26 Javascript
jquery判断密码强度的验证代码
Apr 22 Javascript
Angular1.x复杂指令实例详解
Mar 01 Javascript
js实现关闭网页出现是否离开提示
Dec 07 Javascript
vue.js select下拉框绑定和取值方法
Mar 03 Javascript
ES6 Symbol数据类型的应用实例分析
Jun 26 Javascript
基于webpack4+vue-cli3项目实现换肤功能
Jul 17 Javascript
angularjs请求数据的方法示例
Aug 06 Javascript
Angular性能优化之第三方组件和懒加载技术
May 10 Javascript
详解JWT token心得与使用实例
Aug 02 #Javascript
详解使用JWT实现单点登录(完全跨域方案)
Aug 02 #Javascript
基于mpvue的简单弹窗组件mptoast使用详解
Aug 02 #Javascript
vue下使用nginx刷新页面404的问题解决
Aug 02 #Javascript
超轻量级的js时间库miment使用解析
Aug 02 #Javascript
操作按钮悬浮固定在微信小程序底部的实现代码
Aug 02 #Javascript
微信小程序中悬浮窗功能的实现代码
Aug 02 #Javascript
You might like
php实现jQuery扩展函数
2009/10/30 PHP
ThinkPHP的截取字符串函数无法显示省略号的解决方法
2014/06/25 PHP
php验证码的制作思路和实现方法
2015/11/12 PHP
jQuery EasyUI API 中文文档 - ComboTree组合树
2011/10/11 Javascript
当鼠标移动时出现特效的JQuery代码
2013/11/08 Javascript
原生JavaScript+LESS实现瀑布流
2014/12/12 Javascript
基于jquery的手风琴图片展示效果实现方法
2014/12/16 Javascript
NodeJS学习笔记之Connect中间件模块(二)
2015/01/27 NodeJs
JS或jQuery获取ASP.NET服务器控件ID的方法
2015/06/08 Javascript
noty ? jQuery通知插件全面解析
2016/05/18 Javascript
javascript之IE版本检测超简单方法
2016/08/20 Javascript
微信小程序实现登录注册tab切换效果
2020/12/29 Javascript
vue2.0 如何在hash模式下实现微信分享
2019/01/22 Javascript
postman自定义函数实现 时间函数的思路详解
2019/04/17 Javascript
ES6的异步操作之promise用法和async函数的具体使用
2019/12/06 Javascript
JavaScript 俄罗斯方块游戏实现方法与代码解释
2020/04/08 Javascript
vue实现放大镜效果
2020/09/17 Javascript
[03:49]DOTA2 2015国际邀请赛中国区预选赛第二日现场百态
2015/05/27 DOTA
利用selenium 3.7和python3添加cookie模拟登陆的实现
2017/11/20 Python
人脸识别经典算法一 特征脸方法(Eigenface)
2018/03/13 Python
Java实现的执行python脚本工具类示例【使用jython.jar】
2018/03/29 Python
Anaconda 离线安装 python 包的操作方法
2018/06/11 Python
python+Splinter实现12306抢票功能
2018/09/25 Python
Python3 Post登录并且保存cookie登录其他页面的方法
2018/12/28 Python
Python程序暂停的正常处理方法
2019/11/07 Python
python如何输出反斜杠
2020/06/18 Python
纯CSS实现的大小渐变、渐远效果
2014/04/15 HTML / CSS
行政专员的岗位职责
2014/03/10 职场文书
全国优秀辅导员事迹材料
2014/05/14 职场文书
植树节口号
2014/06/21 职场文书
班子四风对照检查材料
2014/08/21 职场文书
党的群众路线教育实践活动实施方案
2014/10/31 职场文书
公司承诺函范文
2015/01/21 职场文书
2015年车间管理工作总结
2015/07/23 职场文书
能用CSS实现的就不要麻烦JavaScript了
2021/10/05 HTML / CSS