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>

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