javascript 历史栈
var Stack=function(limt_length){
this.stack=new Array();
this.limt=(limt_length)?limt_length:8;
}
Stack.prototype.push=function(o){
if(this.exist(o)){
this.remove(o);
this.stack.unshift(o);
}else{
this.stack.unshift(o);
}
while(this.stack.length>this.limt){
this.stack=this.stack.reverse();
this.stack.shift();
this.stack=this.stack.reverse();
}
};
Stack.prototype.pop=function(){
return this.stack.shift();
};
Stack.prototype.exist=function(o){
return (this.getIndex(o)>-1);
};
Stack.prototype.getIndex=function(o){
var ret=-1;
for(var i=0,len=this.stack.length;i<len;i++){
if(this.stack[i]==o){return i;}
}
return ret;
};
Stack.prototype.remove=function(o){
var _i=this.getIndex(o);
if(_i>-1){
var fArray=this.stack.slice(0,_i);
var bArray=this.stack.slice(_i+1,this.stack.length);
this.stack=fArray.concat(bArray);
}else{
throw new Eorr("栈中不包含此对象");
}
};
Stack.prototype.getCurret=function(){
return this.stack[0];
};
var s=new Stack();
var f=function(i){this.id=i;}
var tar=[];
for(var i=0;i<10;i++){
var _f=new f(i);
tar.push(_f);
s.push(_f);
}
var sss1=(function(){
var p="";
for(var i=0;i<s.stack.length;i++){
p=p+s.stack[i].id+","
}
return p;
})()
s.push(tar[1]);
var sss2=(function(){
var p="";
for(var i=0;i<s.stack.length;i++){
p=p+s.stack[i].id+","
}
return p;
})()
alert(s.getCurret().id+" "+s.pop().id)
alert(sss1)
alert(sss2)
相关文档:
一概述
在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类、Hashtable类等等。
目前在Javascript中,已经存在一些标准的类,例如Date、Array、RegExp、String、Math、Number等等,这为我们编程提供了许多方便。但对于复杂的客户端程序而言,这些 ......
String
字符串对象。声明一个字符串对象最简单、快捷、有效、常用的方法就是直接赋值。
属性
length
用法:<字符串对象>.length;返回该字符串的长度。
方法
......
JavaScript方法和技巧大全 基础知识
1 创建脚本块 <script language=”JavaScript”> JavaScript code goes here </script>
2 隐藏脚本代码 <script language=”JavaScript”><!-- document.write(“Hello”); --> </script>
在不支持 ......
我是一名程序员,使用Java语言进行管理软件开发工作。有一次开发项目中使用JavaScript来丰富用户体验效果,特地认真的学习了一下,从此对JavaScript产生了浓厚的兴趣。有机会参加了由电子工业出版社飞思公司举办的《JavaScript征途》读后感有奖召集活动,获得赠书学习。由于本人文学水平有限,此读后感的用词不当之处还望多 ......
JavaScript中的String是只读的,所以每次对String变量的操作都会在内存中产生一个零时变量,如果要对字符串进行大量的重复操作,性能和效率都会很低下,因此常用数组的方法操作字符串,即先把字符串都存储在数组中,然后使用join()方法连接字符串。
当然可以把这种方法再演变一下,在JavaScript中模拟StringBuffer类。
看 ......