哦,原来已经有答案了. <SCRIPT LANGUAGE="JavaScript"> <!-- if (Array.splice==null) Array.prototype.splice = Splice; function Splice(a,b){ a = parseInt(a);b=parseInt(b); if (isNaN(a)||isNaN(b)||a>this.length||a<0||b<0) return null; if (a+b>this.length) b=this.length-a; var ar=[],rs=[],i,l=this.length-b+arguments.length-2; for (i=a;i<a+b;i++) rs[i-a]=this[i]; for (var i=2;i<arguments.length;i++) ar[ar.length]=arguments[i]; for (var i=a+b;i<this.length;i++) ar[ar.length]=this[i]; for (var i=0;i<ar.length;i++) this[a+i]=ar[i]; this.length=l; return rs; } var a=["a","b","c","d","e","f"]; alert(a.splice(2,2,"i","j","k")); alert(a) //--> </SCRIPT> 写得很好,很佩服
其实第一行就是错的 :))if (Array.prototype.splice==null) Array.prototype.splice = Splice; function Splice(a,b){ a = parseInt(a);b=parseInt(b); if (isNaN(a)||isNaN(b)||a>this.length||a<0||b<0) return null; if (a+b>this.length) b=this.length-a; var ar=[],rs=[],i,l=this.length-b+arguments.length-2; for (i=a;i<a+b;i++) rs[i-a]=this[i]; for (var i=2;i<arguments.length;i++) ar[ar.length]=arguments[i]; for (var i=a+b;i<this.length;i++) ar[ar.length]=this[i]; for (var i=0;i<ar.length;i++) this[a+i]=ar[i]; this.length=l; return rs; }if (Array.prototype.shift==null) Array.prototype.shift = Shift; function Shift(){ var rs = this[0]; for (var i=1;i<this.length;i++) this[i-1]=this[i] this.length=this.length-1 return rs; }if (Array.prototype.unshift==null) Array.prototype.unshift = Unshift; function Unshift(){ var ar=[]; for (var i=0;i<arguments.length;i++) ar[i]=arguments[i]; for (var i=0;i<this.length;i++) ar[ar.length]=this[i]; for (var i=0;i<ar.length;i++) this[i]=ar[i]; return this.length; }if (Array.prototype.pop==null) Array.prototype.pop = Pop; function Pop(){ var rs=this[this.length-1]; this.length = this.length-1; return rs; }
if(!Array.prototype.splice){ function Array.prototype.splice(start,deleteCount){ var ostart = this.slice(0,start); var delobj = this.slice(start,start+deleteCount); var oend = this.slice(start+deleteCount); var newArray = []; newArray = newArray.concat(ostart); for(var i=2;i<arguments.length;i++){newArray = newArray.concat(arguments[i])} newArray = newArray.concat(oend); this.length = newArray.length; for(var i=0;i<newArray.length;i++){this[i] = newArray[i]} return delobj; } }
if (Array.prototype.push==null) Array.prototype.push = Push; function Push(){ var ar=[]; for (var i=0;i<arguments.length;i++) this[this.length]=arguments[i]; return this.length; }
<SCRIPT LANGUAGE="JavaScript">
<!--
if (Array.splice==null)
Array.prototype.splice = Splice;
function Splice(a,b){
a = parseInt(a);b=parseInt(b);
if (isNaN(a)||isNaN(b)||a>this.length||a<0||b<0) return null;
if (a+b>this.length) b=this.length-a;
var ar=[],rs=[],i,l=this.length-b+arguments.length-2;
for (i=a;i<a+b;i++) rs[i-a]=this[i];
for (var i=2;i<arguments.length;i++) ar[ar.length]=arguments[i];
for (var i=a+b;i<this.length;i++) ar[ar.length]=this[i];
for (var i=0;i<ar.length;i++) this[a+i]=ar[i];
this.length=l;
return rs;
}
var a=["a","b","c","d","e","f"];
alert(a.splice(2,2,"i","j","k"));
alert(a)
//-->
</SCRIPT>
写得很好,很佩服
Array.prototype.splice = Splice;
function Splice(a,b){
a = parseInt(a);b=parseInt(b);
if (isNaN(a)||isNaN(b)||a>this.length||a<0||b<0) return null;
if (a+b>this.length) b=this.length-a;
var ar=[],rs=[],i,l=this.length-b+arguments.length-2;
for (i=a;i<a+b;i++) rs[i-a]=this[i];
for (var i=2;i<arguments.length;i++) ar[ar.length]=arguments[i];
for (var i=a+b;i<this.length;i++) ar[ar.length]=this[i];
for (var i=0;i<ar.length;i++) this[a+i]=ar[i];
this.length=l;
return rs;
}if (Array.prototype.shift==null)
Array.prototype.shift = Shift;
function Shift(){
var rs = this[0];
for (var i=1;i<this.length;i++) this[i-1]=this[i]
this.length=this.length-1
return rs;
}if (Array.prototype.unshift==null)
Array.prototype.unshift = Unshift;
function Unshift(){
var ar=[];
for (var i=0;i<arguments.length;i++) ar[i]=arguments[i];
for (var i=0;i<this.length;i++) ar[ar.length]=this[i];
for (var i=0;i<ar.length;i++) this[i]=ar[i];
return this.length;
}if (Array.prototype.pop==null)
Array.prototype.pop = Pop;
function Pop(){
var rs=this[this.length-1];
this.length = this.length-1;
return rs;
}
function Array.prototype.splice(start,deleteCount){
var ostart = this.slice(0,start);
var delobj = this.slice(start,start+deleteCount);
var oend = this.slice(start+deleteCount);
var newArray = [];
newArray = newArray.concat(ostart);
for(var i=2;i<arguments.length;i++){newArray = newArray.concat(arguments[i])}
newArray = newArray.concat(oend);
this.length = newArray.length;
for(var i=0;i<newArray.length;i++){this[i] = newArray[i]}
return delobj;
}
}
Array.prototype.push = Push;
function Push(){
var ar=[];
for (var i=0;i<arguments.length;i++) this[this.length]=arguments[i];
return this.length;
}
var a=new Array('a','c','e')function del1(a,i){
return a.slice(0,i).concat(a.slice(i+1))
}
function del2(a,i){
a.splice(i,1)
return a;
}
alert(del1(a,1));
alert(del2(a,1));
</script>