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>