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


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表单验证 - Parsley.js使用和配置
Jan 25 Javascript
Javascript验证上传图片大小[前台处理]
Jul 18 Javascript
JS组件Bootstrap Table表格行拖拽效果实现代码
Aug 27 Javascript
[Bootstrap-插件使用]Jcrop+fileinput组合实现头像上传功能实例代码
Dec 20 Javascript
angular双向绑定模拟探索
Dec 26 Javascript
使用Xcache缓存器加速PHP网站的配置方法
Apr 22 Javascript
详解webpack的配置文件entry与output
Aug 21 Javascript
解决Vue2.x父组件与子组件之间的双向绑定问题
Mar 06 Javascript
create-react-app构建项目慢的解决方法
Mar 14 Javascript
基于Vue+element-ui 的Table二次封装的实现
Jul 20 Javascript
vue项目持久化存储数据的实现代码
Oct 01 Javascript
Vue中rem与postcss-pxtorem的应用详解
Nov 20 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 不同编码下的字符串长度区分
2009/09/26 PHP
JavaScript实现滚动栏效果的方法
2015/04/27 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
PHP实现Snowflake生成分布式唯一ID的方法示例
2020/08/30 PHP
js版本A*寻路算法
2006/12/22 Javascript
JavaScript使用技巧精萃[代码非常实用]
2008/11/21 Javascript
js里怎么取select标签里的值并修改
2012/12/10 Javascript
javascript禁制后退键(Backspace)实例代码
2013/11/15 Javascript
用IE重起计算机或者关机的示例代码
2014/03/10 Javascript
nodejs 整合kindEditor实现图片上传
2015/02/03 NodeJs
javascript实现倒计时并弹窗提示特效
2015/06/05 Javascript
Vue2.0 vue-source jsonp 跨域请求
2017/08/04 Javascript
bootstrap3-dialog-master模态框使用详解
2017/08/22 Javascript
浅谈vue.js导入css库(elementUi)的方法
2018/03/09 Javascript
浅谈微信小程序之官方UI框架we-ui使用教程
2018/08/20 Javascript
ES6中let 和 const 的新特性
2018/09/03 Javascript
python实现多线程采集的2个代码例子
2014/07/07 Python
Python将xml和xsl转换为html的方法
2015/03/10 Python
使用Python的Scrapy框架编写web爬虫的简单示例
2015/04/17 Python
python实现下载整个ftp目录的方法
2017/01/17 Python
Python根据服务获取端口号的方法
2019/09/25 Python
解决Python命令行下退格,删除,方向键乱码(亲测有效)
2020/01/16 Python
Python如何实现在字符串里嵌入双引号或者单引号
2020/03/02 Python
使用卷积神经网络(CNN)做人脸识别的示例代码
2020/03/27 Python
深入解读CSS3中transform变换模型的渲染
2016/05/27 HTML / CSS
英国家庭珠宝商:T. H. Baker
2018/02/08 全球购物
如何提高MySql的安全性
2014/06/19 面试题
自荐信包含哪些内容
2013/10/30 职场文书
可口可乐广告词
2014/03/20 职场文书
捐助倡议书范文
2014/04/15 职场文书
教师求职自荐书
2014/06/14 职场文书
协商一致解除劳动合同协议书
2014/09/14 职场文书
机关单位2016年法制宣传日活动总结
2016/04/01 职场文书
幼儿园教师辞职信
2019/06/21 职场文书
mysql在项目中怎么选事务隔离级别
2021/05/25 MySQL
启动Tomcat时出现大量乱码的解决方法
2021/06/21 Java/Android