js day5 字符串

<script type="text/javascript">
            //基本類型:string/number/boolean/undefined/null
            //引用類型:object
            
            //一切皆對象
            Map() 方法返回一個由原數組中的每個元素調用一個指定方法後的返回值組成的新的數組。

 reduce 方法是讓數組的前項和後項做計算,並累計最終的值。reduce函數還有第二個參數,第二個參數是設置prev的初始值,當有值的時候,prev的初始值就是第二個參數的值,當沒有的時候是數組元素的第一個元素的值。
            //對於基本類型來說,爲什麼也存在屬性和方法??
            //其實string/number/boolean是包裝對象,當我們需要使用方法和屬性時,系統臨時隱式創建一個對象(new Number/new String/new Boolean)的寫法,等到方法或者屬性使用完成,系統自動銷燬
            //創建的屬性和方法時臨時的,用完即銷燬。
            //var num=3.1415;
            //alert(num.toFixed(2));//3.14
            //alert(3.1415.toFixed(2));
            
            //var str='hello';//alert(typeof str);//string
            //var str1=new String('hello');   //alert(typeof str1);//object
            //alert(str==str1);//true
            //alert(str===str1);//false
            //var str1='abc';
            //alert(str1.length);//3  var str1=new String('abc');
            
            
            
            /*var arr=[1,2,3,4,5];//真正的對象
            arr.length=4;
            alert(arr.length);//4*/
            
            /*var str1='abc';//包裝對象
            str1.length=10;//用完即銷燬
            alert(str1.length);*///3
            
            
            //類數組:僞數組,具有數組某些特性(length,索引下標),不具有數組的方法。
            var str='javascript';
            alert(str.length);
            alert(str[5]);//c
        </script>

//1.charAt(num):返回對應索引(num是索引)的值。
        //var str='javascript';
        //alert(str[5]);//c 
        //alert(str.charAt(5));//c
        //alert(str.charAt(15));//空
        
        //2.charCodeAt(num):返回對應的字符串索引的內容的unicode編碼
        //var str='javascript';
        //alert(str.charCodeAt(1));//97
        
        //3.String.fromCharCode(unicode編碼);將參數中的unicode編碼返回成對應的字符串的內容,多個編碼用逗號分隔。
        //alert(String.fromCharCode(97));//a
        錯的,參數必須爲unicode編碼
        /*for(var i=10000;i<30000;i++){
            document.write(String.fromCharCode(i));
        }*/
        /*var str='俺喜歡你';
        for(var i=0;i<str.length;i++){
            document.write(str.charCodeAt(i)+',');
        }
        var arr=[20474,21916,27426,20320];
        for(var i=0;i<arr.length;i++){
            document.write(String.fromCharCode(arr[i]));
        }*/
        
        
        
        //4.indexOf(‘查找字符’, ’開始位置’):從指定的位置從左往右查找對應的字符,並返回對應字符的位置。如果第二個參數爲負數,默認當做0來處理。 沒有找到就返回-1。
        //5.lastIndexOf(‘查找字符’,’開始位置’):查找順序是相反,爲從後往前找。
        
        /*var str='javascript';
        alert(str.indexOf('a'));//1
        alert(str.indexOf('a',2));//3
        alert(str.indexOf('a',-100));//1*/
        
        
        //6.split——根據已存在的字字符作爲分隔符、拆分成數組
        //把一個字符串分割成一個數組。通過傳遞一個參數來分割。第一個參數就是分割字    符串的符號。如果參數爲空,也是數組,只有一個數據。第二個參數用來限制數組的長度,多餘的切掉

        //var str='javascript';
        //console.log(str.split(''));//["j", "a", "v", "a", "s", "c", "r", "i", "p", "t"]
        //console.log(str.split('s'));//['java','cript']
        //console.log(str.split('a'));//["j", "v", "script"]
        //console.log(str.split('a',2));//["j", "v"]
        //var str='javascript';
        //console.log(str.split('').reverse().join(''));
        
        //7.substring():用來截取字符串的內容
        //沒有參數全部截取。相當於從第0位開始截取。
        //一個參數代表截取從參數的位置往後的字符串。
        //兩個參數代表截取兩個參數之間的字符串,包括第一個參數的位置。
        //兩個參數的時候,當第二個參數小於第一個參數,自動交換位置。
        //如果是負數,當做0來處理

        /*var str='javascript';
        console.log(str.substring());//javascript
        console.log(str.substring(0));//javascript
        console.log(str.substring(4));//script
        console.log(str.substring(4,7));//scr
        console.log(str.substring(7,4));//scr  自動交換位
        console.log(str.substring(2,-5));//ja  
        console.log(str.substring(0,2));//ja  
        console.log(str.substring(-10,-200));//空*/
        
        
        //8.substr(start, length); 用來截取字符串的內容
        //start:開始的索引,如果爲負數,從後往前進行截取,包括開始的索引。
        //length:截取的長度。

        /*var str='javascript';
        console.log(str.substr(2,4));//vasc;
        console.log(str.substr(-10,4));//java;
        console.log(str.substr(0,4));//java;
        console.log(str.substr(-3,4));//ipt;*/
        
        
        //9.toUpperCase()轉換成大寫
        var str='javascript';
        alert(str.toUpperCase());//JAVASCRIPT
        //10.toLowerCase()轉換成小寫
        </script>

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            #box{
                width:200px;
                height:60px;
                color:red;
                font-weight: bold;
                text-align: center;
                line-height: 60px;
                border: 1px solid #FF0000;
                font-size:45px;
                padding: 0 20px;
                margin: 100px auto;
                cursor: pointer;
            }
        </style>
    </head>
    <body>
        <div id="box">AWs55a</div>
        
        <script type="text/javascript">
        //1.數字字母混合驗證碼(數字+大寫字母+小寫字母)
        var oBox=document.getElementById('box');
        oBox.οnclick=function(){
            var arr=[];//數組定義在函數內與函數外不一樣
            for(var i=48;i<=57;i++){
                arr.push(String.fromCharCode(i));
            }
            for(var i=97;i<=122;i++){
                arr.push(String.fromCharCode(i));
            }
            
            var str='';
            for(var i=1;i<=6;i++){
                var rannum=parseInt(Math.random()*arr.length);//0-35
                if(rannum>9){//字母
                    if(Math.random()>0.5){
                        str+=arr[rannum].toUpperCase();
                    }else{
                        str+=arr[rannum];
                    }
                }else{//數字
                    str+=arr[rannum];
                }
            }
            oBox.innerHTML=str;
        };
        
        //2.已知字符串“aabbbccdeefffgghhhiiiiijjjjjjjjj”編程實現以下功能。
        //統計每個字符出現的次數,顯示結果--split()
        //去掉重複的字符,使結果顯示 abcdefghij
        
        /*var obj={
            a:2,
            b:3,
            c:2,
            d:1,
            e:2
        }
        obj.a++;
        obj['a']++;
        alert(obj.a);*///4
        
        
        var str='aabbbccdeefffgghhhiiiiijjjjjjjjj';
        var newarr=[];
        var obj={};
        var arr=str.split('');
        for(var i=0;i<arr.length;i++){
            var bstop=true;
            for( var j=0;j<newarr.length;j++){
                if(arr[i]==newarr[j]){//重複
                    obj[arr[i]]++;
                    bstop=false;
                }
            }
            if(bstop){//走這裏只有一次
                obj[arr[i]]=1;
                newarr.push(arr[i]);
            }
            
        }
        console.log(obj);
        console.log(newarr.join(''));
        
        /*var str='aaaaaabbbccdeefffgghhhiiiiijjjjjjjjj';
        var arr=str.split('');
        console.log(arr.reduce(function(prev,curr){
            prev[curr]=prev[curr]+1 || 1; 
            return prev;
        },{}));*/

        </script>
    </body>
</html>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章