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


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 相关文章推荐
jQuery 获取对象 定位子对象
May 31 Javascript
通过jquery 获取URL参数并进行转码
Aug 18 Javascript
JavaScript前端图片加载管理器imagepool使用详解
Dec 29 Javascript
jquery获取复选框checkbox的值的简单实现方法
May 26 Javascript
javascript之Array 数组对象详解
Jun 07 Javascript
Vue.js鼠标悬浮更换图片功能
May 17 Javascript
全面解析jQuery中的$(window)与$(document)的用法区别
Aug 15 jQuery
js+SVG实现动态时钟效果
Jul 14 Javascript
bootstrap动态调用select下拉框的实例代码
Aug 09 Javascript
ajax与jsonp的区别及用法
Oct 16 Javascript
微信小程序实现省市区三级地址选择
Jun 21 Javascript
VUE实现Studio管理后台之鼠标拖放改变窗口大小
Mar 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中文字母数字验证码实现代码
2008/04/25 PHP
php反弹shell实现代码
2009/04/22 PHP
php中的PHP_EOL换行符详细解析
2013/10/26 PHP
php微信公众平台开发之获取用户基本信息
2015/08/17 PHP
学习ExtJS(二) Button常用方法
2009/10/07 Javascript
最短的javascript:地址栏载入脚本代码
2011/10/13 Javascript
通过JQuery实现win8一样酷炫的动态磁贴效果(示例代码)
2013/07/13 Javascript
让浏览器DOM元素最后加载的js方法
2014/07/29 Javascript
jQuery实现列表内容的动态载入特效
2015/08/08 Javascript
js窗口关闭提示信息(兼容IE和firefox)
2015/10/23 Javascript
jQuery多文件异步上传带进度条实例代码
2016/08/16 Javascript
jQuery双向列表选择器DIV模拟版
2016/11/01 Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
2017/03/06 Javascript
手把手搭建安装基于windows的Vue.js运行环境
2017/06/12 Javascript
node.js中grunt和gulp的区别详解
2017/07/17 Javascript
微信小程序实战篇之购物车的实现代码示例
2017/11/30 Javascript
用React-Native+Mobx做一个迷你水果商城APP(附源码)
2017/12/25 Javascript
在vue中使用echarts图表实例代码详解
2018/10/22 Javascript
创建echart多个联动的示例代码
2018/11/23 Javascript
Vue实现table上下移动功能示例
2019/02/21 Javascript
关于NodeJS中的循环引用详解
2019/07/23 NodeJs
JavaScript常用8种数组去重代码实例
2020/09/09 Javascript
Python备份Mysql脚本
2008/08/11 Python
Pycharm学习教程(5) Python快捷键相关设置
2017/05/03 Python
Python使用MD5加密算法对字符串进行加密操作示例
2018/03/30 Python
可能是最全面的 Python 字符串拼接总结【收藏】
2018/07/09 Python
django的settings中设置中文支持的实现
2019/04/28 Python
python输出pdf文档的实例
2020/02/13 Python
Django:使用filter的pk进行多值查询操作
2020/07/15 Python
《巨人的花园》教学反思
2014/02/12 职场文书
节约用水的口号
2014/06/20 职场文书
店长岗位职责
2015/02/11 职场文书
英文自荐信范文
2015/03/25 职场文书
企业办公室主任岗位职责
2015/04/01 职场文书
淮海战役观后感
2015/06/11 职场文书
党风廉政建设心得体会
2019/05/21 职场文书