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


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 相关文章推荐
JavaScript中判断原生函数检查function是否是原生代码
Sep 09 Javascript
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
May 12 Javascript
js预加载图片方法汇总
Jun 15 Javascript
简述JavaScript的正则表达式中test()方法的使用
Jun 16 Javascript
常用jQuery代码分享
Jul 14 Javascript
javascript实现图片上传前台页面
Aug 18 Javascript
详解AngularJS中的http拦截
Feb 09 Javascript
javascript中获取class的简单实现
Jul 12 Javascript
SelecT下拉框选中和取值的解决方法
Nov 22 Javascript
详解从新建vue项目到引入组件Element的方法
Aug 29 Javascript
解决Vue调用springboot接口403跨域问题
Sep 02 Javascript
使用jquery实现轮播图效果
Jan 02 jQuery
详解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
也谈截取首页新闻 - 范例
2006/10/09 PHP
php mssql 数据库分页SQL语句
2008/12/16 PHP
php定时计划任务的实现方法详解
2013/06/06 PHP
PHP session会话操作技巧小结
2016/09/27 PHP
php获取ip及网址的简单方法(必看)
2017/04/01 PHP
有关PHP 中 config.m4 的探索
2020/08/26 PHP
[原创]提供复制本站内容时出现,该文章转自脚本之家等字样的js代码
2007/03/27 Javascript
JavaScript 序列化对象实现代码
2009/12/18 Javascript
javascrip客户端验证文件大小及文件类型并重置上传
2011/01/12 Javascript
JavaScript ( (__ = !$ + $)[+$] + ({} + $)[_/_] +({} + $)[_/_] )
2011/02/25 Javascript
event.currentTarget与event.target的区别介绍
2012/12/31 Javascript
javascript重写alert方法的实例代码
2013/03/29 Javascript
javascript页面加载完执行事件代码
2014/02/11 Javascript
jquery获取复选框checkbox的值的简单实现方法
2016/05/26 Javascript
vue项目base64字符串转图片的实现代码
2018/07/13 Javascript
详解关于element级联选择器数据回显问题
2019/02/20 Javascript
layui table 多行删除(id获取)的方法
2019/09/12 Javascript
JavaScript实现移动端弹窗后禁止滚动
2020/05/25 Javascript
[01:48:04]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第一场 2月7日
2021/03/11 DOTA
从零学python系列之新版本导入httplib模块报ImportError解决方案
2014/05/23 Python
以一个投票程序的实例来讲解Python的Django框架使用
2016/02/18 Python
python中的lambda表达式用法详解
2016/06/22 Python
PyQt5 QSerialPort子线程操作的实现
2018/04/21 Python
Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】
2018/07/12 Python
jupyter notebook运行命令显示[*](解决办法)
2020/05/18 Python
Python flask框架端口失效解决方案
2020/06/04 Python
基于zepto的插件之移动端无缝向上滚动并上下触摸滑动实例代码
2016/12/20 HTML / CSS
俄罗斯街头服装品牌:Black Star Wear
2017/03/01 全球购物
Nike比利时官网:Nike.com (BE)
2019/02/07 全球购物
自主招生自荐信范文
2013/12/04 职场文书
大型演出策划方案
2014/05/28 职场文书
心术观后感
2015/06/11 职场文书
2016民族团结先进个人事迹材料
2016/02/26 职场文书
珍惜时间的诗歌赏析
2019/08/23 职场文书
Python使用socket去实现TCP客户端和TCP服务端
2022/04/12 Python
python神经网络学习 使用Keras进行简单分类
2022/05/04 Python