중국어 A-Z 정렬 방법

2964 단어 vue.js정렬js
중국 어 를 실현 하 는 방법 은 A-Z 의 방법 에 따라 vue 의 methods 에 기록 할 수 있 습 니 다.

methods:{
        pySort:function(arr,empty){
          var $this = this;
          if(!String.prototype.localeCompare)
            return null;
          var letters = "ABCDEFGHJKLMNOPQRSTWXYZ".split('');
          var zh = "          r r P   ".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 에서 도 통용 된다.
이 글 이 정렬 이 필요 하신 분 들 에 게 도움 이 됐 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기