视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
js怎样实现中文拼音的A-Z排序
2020-11-27 19:55:55 责编:小采
文档


这次给大家带来js怎样实现中文拼音的A-Z排序,js实现中文拼音的A-Z排序的注意事项有哪些,下面就是实战案例,一起来看一下。

实现中文按照A-Z的方法,可以在vue的methods里面写入:

methods:{
 pySort:function(arr,empty){
 var $this = this;
 if(!String.prototype.localeCompare)
 return null;
 var letters = "ABCDEFGHJKLMNOPQRSTWXYZ".split('');
 var zh = "阿八嚓哒妸发旮哈讥咔垃痳拏噢妑七呥扨它穵夕丫帀".split('');
 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 ;
 }
 }

将从php中获取的json对象转换成数组,vue中直接调用->this.pySort(arr); js直接调用pySort(arr)方法即可 即可实现按照A-Z的格式排序

如下图在控制台输出的格式:

letter中存放键值A-Z

data:存放排序后的数组

至于vue中需要放在页面中,使用v-for循环即可 v-for="(key,value) in arr"

需要获取data数组的值,继续使用v-for="tmp in (key.data)"循环在你想输入摆放的元素中

写的比较简单,这个方法在js中也通用

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

select的option叠加如何处理

vue移动端的UI框架实现侧边菜单插件效果

下载本文
显示全文
专题