js將陣列中的字串執行字母表排序

前端開發大本營發表於2019-04-01

第一種:將陣列中的字串執行不區分大小寫的字母表排序


<!DOCTYPE html>
<meta charset=utf-8>
<html>
<head>  
    <title>不區分大小寫的字母表排序</title>
</head>
<body>
<script type="text/javascript">  
    let arr = ['abc', 'aba', 'aef', 'Def', 'BoC', 'FED'];  
    //console.log(arr.sort()); // ["BoC", "Def", "FED", "abc"]  
    let arrSort = arr.sort(function(s, t) {  
        let a = s.toLowerCase();  
        let b = t.toLowerCase();  
        if (a < b) return -1;  
        if (a > b) return 1;  
        return 0;  
    })  
    console.log(arrSort);
</script>
</body>
</html>複製程式碼


執行結果:

[ 'aba', 'abc', 'aef', 'BoC', 'Def', 'FED' ]​複製程式碼


第二種:將陣列每一項按照從第二個字元開始的字母表順序排序

舉例:

輸入為:["abc","bac","acb","acg","acz"]

輸出為:["bac","abc","acb","acg","acz"]

排序的規則為:按照從第二個字元的字母表進行排序,例如“abc”中第二個字元為b,“bac”第二個字元為a,那麼“bac”排在“abc”的前面;如果第二個字元大小也相同,則按照第三個字元的大小進行排序,以此類推,直至比較出大小;如果兩個數字完全相同則順序不變。


<!DOCTYPE html>
<meta charset=utf-8>
<html>
<head>  
    <title>將陣列每一項按照從第二個字元開始的字母表順序排序</title>
</head>
<body>
<script type="text/javascript"> 
    let compare = function (string1, string2) {    
        for(var i=1;i<string1.length;i++){       
            let val1 = string1[i];         
            let val2 = string2[i];      
            if (val1 < val2) {          
                return false;      
            } else if (val1 > val2) {          
                return true;     
            }    
        }     
        return false;
     } 
     let a=["abc","bac","acb","acg","acz"];  
     a.sort(compare);
     console.log(a);
</script>
</body>
</html>複製程式碼

執行結果:

[ 'bac', 'abc', 'acb', 'acg', 'acz' ]​複製程式碼

​後面會繼續補充。。。。。。



相關文章