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


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语言本身谈项目实战
Dec 27 Javascript
Linux下使用jq友好的打印JSON技巧分享
Nov 18 Javascript
JavaScript之数组(Array)详解
Apr 01 Javascript
两种js监听滚轮事件的实现方法
May 13 Javascript
VUE实现日历组件功能
Mar 13 Javascript
jQuery使用正则验证15/18身份证的方法示例
Apr 27 jQuery
解决angular双向绑定无效果,ng-model不能正常显示的问题
Oct 02 Javascript
js canvas实现橡皮擦效果
Dec 20 Javascript
three.js搭建室内场景教程
Dec 30 Javascript
vue基础之模板和过滤器用法实例分析
Mar 12 Javascript
小程序如何支持使用 async/await详解
Sep 12 Javascript
vue+elementUI动态生成面包屑导航教程
Nov 04 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在项目中寻找代码的坏味道(综艺命名)
2012/07/19 PHP
php中error与exception的区别及应用
2014/07/28 PHP
thinkPHP引入类的方法详解
2016/12/08 PHP
分享一个我自己写的ToolTip提示插件(附源码)
2013/01/20 Javascript
Extjs 3.3切换tab隐藏相应工具栏出现空白解决
2013/04/02 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
浅谈checkbox的一些操作(实战经验)
2013/11/20 Javascript
在父页面得到zTree已选中的节点的方法
2015/02/12 Javascript
JavaScript实现将UPC转换成ISBN的方法
2015/05/26 Javascript
JavaScript实现为input与textarea自定义hover,focus效果的方法
2015/08/21 Javascript
jQuery设置Cookie及删除Cookie实例分析
2016/04/15 Javascript
老生常谈jacascript DOM节点获取
2017/04/17 Javascript
React+Webpack快速上手指南(小结)
2018/08/15 Javascript
动态内存分配导致影响Javascript性能的问题
2018/12/18 Javascript
WebGL学习教程之Three.js学习笔记(第一篇)
2019/04/25 Javascript
通过vue手动封装on、emit、off的代码详解
2019/05/29 Javascript
微信小程序获取当前时间及星期几的实例代码
2020/09/20 Javascript
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
python中requests模块的使用方法
2015/04/08 Python
Python中文字符串截取问题
2015/06/15 Python
使用pyecharts在jupyter notebook上绘图
2020/04/23 Python
Python数据可视化实现正态分布(高斯分布)
2019/08/21 Python
Python字符串格式化常用手段及注意事项
2020/06/17 Python
python爬取代理IP并进行有效的IP测试实现
2020/10/09 Python
CSS3 background-image颜色渐变的实现代码
2018/09/13 HTML / CSS
HTML5的自定义属性data-*详细介绍和JS操作实例
2014/04/10 HTML / CSS
phpquery中文手册
2021/03/18 PHP
Sport-Thieme荷兰:购买体育用品
2019/08/25 全球购物
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
2014/09/26 面试题
创先争优制度
2014/01/21 职场文书
《回乡偶书》教学反思
2014/04/12 职场文书
大学生创业计划书怎么写
2014/09/15 职场文书
宾馆前台接待岗位职责
2015/04/02 职场文书
神秘岛读书笔记
2015/07/01 职场文书
2015中学学校工作总结
2015/07/20 职场文书
CSS3实现的侧滑菜单
2021/04/27 HTML / CSS