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)
相关文档:
<html>
<head></head>
<script>
function ShowMenu(bMenu) {
document.all.idFinder.style.display = (bMenu) ? "none" : "block"
document.all.idMenu.style.display = (bMenu) ? "block" : "none"
idML.className = (bMenu) ? "cOn" : "cOff"
idRL.className = (bMenu) ? "cOff" : "cOn" ......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>随机 ......
近日,知名技术开发网站SYS-CON 媒体列出十个应用最广的Javascript框架,文章说,Javascript库已经成为设计优秀网站的基础,当今几乎所有站点都带有Javascript或Ajax元素。在Web2.0开发大潮中,它也许是最关键的要素。
以下十个十大Javascript框架,你常用其中的几个?
1. script.aculo.us (http://script.aculo.us/)
UR ......
JavaScript中的String是只读的,所以每次对String变量的操作都会在内存中产生一个零时变量,如果要对字符串进行大量的重复操作,性能和效率都会很低下,因此常用数组的方法操作字符串,即先把字符串都存储在数组中,然后使用join()方法连接字符串。
当然可以把这种方法再演变一下,在JavaScript中模拟StringBuffer类。
看 ......