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


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 相关文章推荐
ajax 缓存 问题 requestheader
Aug 01 Javascript
详解JavaScript函数绑定
Aug 18 Javascript
使用js简单实现了tree树菜单
Nov 20 Javascript
JS 屏蔽按键效果与改变按键效果的示例代码
Dec 24 Javascript
Node.js 服务器端应用开发框架 -- Hapi.js
Jul 29 Javascript
jQuery之DOM对象和jQuery对象的转换与区别分析
Jan 08 Javascript
JS表的模拟方法
Feb 05 Javascript
JavaScript事件类型中焦点、鼠标和滚轮事件详解
Jan 25 Javascript
微信小程序 网络请求(post请求,get请求)
Jan 17 Javascript
JS动态添加的div点击跳转到另一页面实现代码
Sep 30 Javascript
浅谈Vue数据响应思路之数组
Nov 06 Javascript
node.js制作一个简单的登录拦截器
Feb 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速成大法
2015/01/30 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
javascript生成json数据简单示例分享
2014/02/14 Javascript
jQuery文件上传插件Uploadify使用指南
2014/06/05 Javascript
js中实现多态采用和继承类似的方法
2014/08/22 Javascript
JavaScript、tab切换完整版(自动切换、鼠标移入停止、移开运行)
2016/01/05 Javascript
javascript中FOREACH数组方法使用示例
2016/03/01 Javascript
js阻止浏览器默认行为的简单实例
2016/05/15 Javascript
vue双向数据绑定原理探究(附demo)
2017/01/17 Javascript
如何选择jQuery版本 1.x? 2.x? 3.x?
2017/04/01 jQuery
Angular 2父子组件数据传递之局部变量获取子组件其他成员
2017/07/04 Javascript
XMLHttpRequest对象_Ajax异步请求重点(推荐)
2017/09/28 Javascript
vue 项目中使用Loading组件的示例代码
2018/08/31 Javascript
ndm:NPM的桌面GUI应用程序
2018/10/15 Javascript
jquery实现二级导航下拉菜单效果实例
2019/05/14 jQuery
简单谈谈javascript高级特性
2019/09/04 Javascript
Python代理抓取并验证使用多线程实现
2013/05/03 Python
浅谈Python中copy()方法的使用
2015/05/21 Python
Django中使用celery完成异步任务的示例代码
2018/01/23 Python
Python 200行代码实现一个滑动验证码过程详解
2019/07/11 Python
keras用auc做metrics以及早停实例
2020/07/02 Python
Python接口自动化测试的实现
2020/08/28 Python
python爬虫请求头的使用
2020/12/01 Python
Bowflex美国官方网站:高级家庭健身器材
2017/12/22 全球购物
人力资源专员岗位职责
2014/01/30 职场文书
竞聘演讲稿精彩开头和结尾
2014/05/14 职场文书
五四青年节演讲稿
2014/05/26 职场文书
毕业生找工作自荐书
2014/06/30 职场文书
2014年教师业务工作总结
2014/12/19 职场文书
寒假社会实践个人总结
2015/03/06 职场文书
MBA推荐信怎么写
2015/03/25 职场文书
土建施工员岗位职责
2015/04/11 职场文书
麦田里的守望者读书笔记
2015/06/30 职场文书
篮球比赛通讯稿
2015/07/18 职场文书
护士医德医风心得体会
2016/01/25 职场文书
简单了解 MySQL 中相关的锁
2021/05/25 MySQL