js自定义函数总结

js自定义函数总结

1、编写一个方法 求一个字符串的字节长度

演示代码:

new function(s){ 
        if(!arguments.length||!s) return null;  
        if(""==s) return 0;     
        var l=0;
        for(var i=0;i<s.length;i++){        
            if(s.charCodeAt(i)>255) l+=2; else l++;     
        }   
        alert(l); 
}("hello world!"); 

2、按照格式 xxxx年xx月xx日xx时xx分xx秒动态显示时间 要求不足10的补0

演示代码:

<script type="text/javascript" language="javascript">   
function tick(){
        var d=new Date();
        var t=function(a){return a<10?"0"+a:a;}
        Clock.innerHTML=d.getFullYear()+"年"+t(d.getMonth()+1)+"月"+t(d.getDate())+"日"+t(d.getHours())+"时"
        +t(d.getMinutes())+"分"+t(d.getSeconds())+"秒";
        window.setTimeout("tick()",1000);
   }
window.onload=tick;
</script>

<body>
<div id="Clock"></div>
</body>  

3、编写一个方法 去掉一个数组的重复元素

演示代码:

Array.prototype.strip=function(){   
    if(this.length<2) return [this[0]]||[];     
    var arr=[];     
    for(var i=0;i<this.length;i++){         
        arr.push(this.splice(i--,1));//将本数组中第一个元素取出放入到数组arr中        
        for(var j=0;j<this.length;j++){             
            if(this[j]==arr[arr.length-1]){                 
                this.splice(j--,1);//删除本数组中与数组arr中最后一个元素相同的元素
            }       
        }   
    }
    return arr;
}

var arr=["abc",85,"abc",85,8,8,1,2,5,4,7,8];   
alert(arr.strip());  

4、为Array写一个indexof方法

演示代码:

Array.prototype.indexOf = function(e){
    for(var i=0,j; j=this[i]; i++){
        if(j==e){return i;}
    }
    return -1;
}

Array.prototype.lastIndexOf = function(e){
    for(var i=this.length-1,j; j=this[i]; i--){
        if(j==e){return i;}
    }
    return -1;
}

var arr=[1,2,3,4,5];
alert(arr.indexOf(5));  

5、用javascript写一个杨辉三角形

演示代码:
<!DOCTYPE html>

</head>
<body>

    <!--  直接传入希望得到的杨辉三角的行数   -->
    <input value="杨辉三角" type="button" onclick="Pascal(10);" />



<script type="text/javascript">
    function Combination(m,n){
        if(n == 0){return 1;}  //每行第一个数为1
        else if(m == n){return 1;} //最后一个数为1
        //其余都是相加而来
        else{
            return Combination(m-1,n-1)+Combination(m-1,n)};
    }
    function Pascal(n){   //杨辉三角,N为行数
        for( var i = 0 ; i < n ; i++ ){   //一共N行
            for ( var j = 0 ; j <= i ; j++ ) {  //每行数字的个数即为行号、例如第1行1个数、第2行2个数
                document.write(Combination(i,j)+"  ");
            }
            document.write("<br/>");
        }
    }

</script>
</body>
</html>
posted @ 2015-08-01 21:05  倒退着往前走  阅读(698)  评论(0编辑  收藏  举报