中英文按照首字母A~Z顺序排序
查了网上很多方法,最后实现如下:(VUE)
数据格式如下:
VUEdata
data: {filter:{},brand:[], },
methods:{
pySort:function(arr,empty){
var $this = this;if(!String.prototype.localeCompare)return null;var letters ="ABCDEFGHIJKLMNOPQRSTUVWXYZ#".split('');var zh ="啊把差大额发噶哈*级卡啦吗那哦爬器然撒他**哇西呀咋".split(''); //*占位没有i,u,v拼音开头的汉字 var arrList = [];for(var m =0;m<arr.length;m++){arrList.push(arr[m].name);}var result = [];var curr;for(var i=0;i<letters.length;i++){curr = {letter: letters[i], data:[]};if(i!=26){for(var j =0;j<arrList.length;j++){var initial = arrList[j].charAt(0); //截取第一个字符 if(arrList[j].charAt(0)==letters[i]||arrList[j].charAt(0)==letters[i].toLowerCase()){ //首字符是英文的 curr.data.push(arrList[j]);}else if(zh[i]!='*'&&$this.isChinese(initial)){ //判断是否是无汉字,是否是中文 if(initial.localeCompare(zh[i]) >= 0 &&(!zh[i+1]||initial.localeCompare(zh[i+1]) <0)) { //判断中文字符在哪一个类别 curr.data.push(arrList[j]);}}}}else{for(var k =0;k<arrList.length;k++){var ini = arrList[k].charAt(0); //截取第一个字符 if(!$this.isChar(ini)&&!$this.isChinese(ini)){curr.data.push(arrList[k]);}}}if(empty || curr.data.length) {result.push(curr);curr.data.sort(function(a,b){return b.localeCompare(a); //排序,英文排序,汉字排在英文后面 });}}return result; }, isChinese:function(temp){var re=/[^\u4E00-\u9FA5]/;if (re.test(temp)){return false ;}return true ; }, isChar:function(char){var reg = /[A-Za-z]/;if (!reg.test(char)){return false ;}return true ; }
}
最后调用:
$this.filter.brand = [
{name: "AHY", count: 0, selected: 0}, {name: "2ITCH'S POUCH", count: 0, selected: 0}, {name: "~U.R", count: 0, selected: 0}, {name: "bonvivant", count: 0, selected: 0}, {name: "dr. jart+", count: 0, selected: 0}, {name: "nooni", count: 0, selected: 0}, {name: "purplebox", count: 0, selected: 0}, {name: "the saem得鲜", count: 0, selected: 0}, {name: "农心", count: 0, selected: 0}, {name: "可莱丝", count: 0, selected: 0}, {name: "太平洋爱茉莉", count: 0, selected: 0}, {name: "悦诗风吟", count: 0, selected: 0}, {name: "悦诗风吟牌", count: 0, selected: 0}, {name: "汤姆农场", count: 0, selected: 0}, {name: "海太", count: 0, selected: 0}, {name: "美美箱", count: 0, selected: 0}, {name: "自然源露", count: 0, selected: 0}, {name: "贵爱娘", count: 0, selected: 0}
]
console.log(JSON.stringify($this.pySort($this.filter.brand)));
中英文按照首字母A~Z顺序排序相关推荐
- JAVA WEB 对返回数据进行按中文名称首字母A~Z升序排序
对数据按中文名称A~Z进行升序排序 Collections.sort(ListName, new Comparator<ModelClassName>() {Collator collat ...
- 将乱序字母按A-Z顺序排序
将乱序字母按A-Z顺序排序 const cityObj = {};for(let i = 65;i<=90;i++){if(this.groupCity[String.fromCharCode( ...
- 英文首字母排序mysql_利用MySQL数据库来处理中英文取首字母排序
[package com.syz;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import ja ...
- 用MySQL数据库来处理中英文取首字母排序
我们的联系人列表经常会有按照首字母排序的需求. 这个很方便, 很清晰, 如果不说性能如何, 就像让数据库来做呢? 其实MySQL是支持的. 我们建立一个函数: DELIMITER $$ CREATE ...
- mysql中英文拼音首字母获取及排序
需求 在数据库中需要根据用户名按a-z排序: 方式一 因为我们通常使用的编码都是utf-8;所以直接排序并不是按照我们所期待的拼音从a-z排序;我们需要将字符转换成gbk即可: select * fr ...
- java中英文获取首字母之后分组排序
package com.syz; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import ...
- mysql 中英按字母排序_利用MySQL数据库来处理中英文取首字母排序
很久都没有写博客了, 但是也积攒了了很多的问题, 下次找个时间一起整理一下, 然后记录下来, 以备不时之需. 我们的联系人列表经常会有按照首字母排序的需求. 这个很方便, 很清晰, 如果不说性能如何 ...
- MySQL数据库处理中英文取首字母排序
需求:联系人列表按照首字母排序 通常如果表设计的时候增加了对应的首字母字段显然很好实现,如果没加,应该如何实现!? 数据库创建 函数 执行以下代码 CREATE DEFINER=``@`` FUNCT ...
- SQL 中文首字母提取与自定义排序
中文首字母提取 利用汉字编码边界值提取 --中文转首字母 select case when regexp_like(t.party_name,'^[a-zA-Z0-9]') then upper(su ...
最新文章
- 10个工程师,9个不合格!
- 一天之内用SDN能做出什么
- python接口自动化参数化_Python读取txt文件数据的方法(用于接口自动化参数化数据)...
- ROS+Turtlebot3+RVIZ 显示机器人历史轨迹方法
- Excel按照日期排序,有截图
- python小例子之8 -- decorator的使用
- tomcat本地服务器配置好了考到别的机器上项目都错了e,【Tomcat】项目部署和运行时遇到的坑(玄学?)...
- Mac下docker安装kali/ubuntu14.04
- 数据可视:让科幻走向现实
- 《惊人的假说-灵魂的科学探索》读书笔记(1)
- Word文档恢复,2大方案教你找回没有保存或者被删除的数据
- python查缺补漏之decorate
- Redis 如何实现库存扣减操作和防止被超卖?(荣耀典藏版)
- 第一个用计算机编舞的人,多媒体平台·虚拟人·数字舞蹈
- 对RAM,ROM,NOR/NAND FLASH等常见内存设备类型的理解
- 东京迪斯尼海洋乐园攻略_迪士尼乐园-软件工程师的观点
- python中的while语句
- Linux打印当前目录
- 2021年深圳考点临床医师计算机考试准考证
- 开源配置管理工具config-toolkit 使用心得
热门文章
- [浙大网新易盛] 春节后找工作被面试的经历,好岗位分享给还在找工作中的软件开发爱好者们
- 演讲实录!谷得技术总监陈镇洪教你打造游戏研发流水线
- c语言中学试题,初中信息技术中考模拟试题
- Mac下使用iPic+腾讯云cos打造舒服的写作环境
- c语言26个字母指针数组排序,C语言:通过指针对数组元素进行排序
- 【五一特刊】FPGA零基础学习:VGA协议驱动设计
- MySQL 对手机号、身份证号 查询结果 用****加密代替
- TDSQL新敏态引擎Online DDL技术原理
- MaaS发展展望与思考
- 达内培训 python 怎样