小程序中英文混合排序问题解决
作者:谢彦杰 发布时间:2024-04-28 09:41:17
标签:小程序,中英文,混合,排序,问题
小程序中英文混合排序问题
在开发一个手机联系人列表的功能时,遇到需求是需要将联系人列表按照拼音顺序排序。而联系人列表是会出现中英文混合的情况。于是遇到了问题。
小程序无法直接中文进行排序
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))
},
结果演示
来源:https://www.cnblogs.com/w53064/p/10571768.html
0
投稿
猜你喜欢
- #!/bin/ksh INTERVAL=5 PREFIX=$INTERVAL-sec-status touch /tmp/running R
- 这个自定义损失函数的背景:(一般回归用的损失函数是MSE, 但要看实际遇到的情况而有所改变)我们现在想要做一个回归,来预估某个商品的销量,现
- 前言有时候在使用Python处理比较耗时操作的时候,为了便于观察处理进度,这时候就需要通过进度条将处理情况进行可视化展示,以便我们能够及时了
- 在Python 2.7中,一个float的repr返回最接近十七位数的十进制数;这足以精确地识别每个可能的IEEE浮点值.浮点数的str类似
- 1. 简介在一些研究领域很多经典算法和工具都由上古语言Fortran编写,而这部分代码又没有对应的C/C++和Python版本。因此,掌握P
- string模块可以追溯到早期版本的Python。以前在本模块中实现的许多功能已经转移到str物品。这个string模块保留了几个有用的常量
- 前言我们在 django-rest-framework解析请求参数 文章中完成了接口文档到参数解析, 一个完整的流程中还
- 一、 迪杰斯特拉算法思想Dijkstra算法主要针对的是有向图的单元最短路径问题,且不能出现权值为负的情况!Dijkstra算法类似于贪心算
- 用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击、双击、点击鼠标右键、拖拽等等。而selenium给我们提供
- 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个
- 我就废话不多说了,直接上代码吧!# -*- coding: utf-8 -*-"""Created on Th
- 假设我们有一个数据集,列名叫status下面有100万的数据,其中包装 “HUMAN_REFUSE”,”SYS_REFUSE”,”HUMAN
- 1.在HTML5中使用Geolocation.getCurrentPosition()方法来获取地理位置。语法:navigator.geol
- 基础环境# +++++ 阿里云OSS开发指南里都有详细的步骤,在这里整理了一下自己需要的东西# 确定开发环境,centOS默认安装了pyth
- 窗口标题pygame.display.set_caption(title, icontitle=None)'''•
- 方法一 :这个是我在站长工具的查询页面使用的防止频繁查询,刷新页面的代码!下面函数的功能是3秒内查询页面即刷新了页面,超过2次就提示!sea
- replace() 方法用于将字符串用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。 需要注意的是:如果用正则表达式替换时, r
- 假设现有一张人员表(表名:Person),若想将姓名、身份证号、住址这三个字段完全相同的记录查找出来,使用1: SELECT p
- MybatisPlus 是一款在 Mybatis 基础上进行的增强 orm 框架,可以实现不写 sql 就完成数据库相关的操作。普通的 ma
- 默认情况下Python的logging模块将日志打印到了标准输出中,且只显示了大于等于WARNING级别的日志,这说明默认的日志级别设置为W