splice重构
<script>
function splice(arr){
var arr1=[];
if(arguments.length===1){
return []
}else if(arguments.length===2){
if(arguments[1]<0) arguments[1]=arr.length+arguments[1]
if(arguments[1]===0){
for(var i=0;i<arr.length;i++){
arr1[i]=arr[i];
arr[i]=null;
}
arr.length=0;
}else if(arguments[1]>0){
for(var j=arguments[1];j<arr.length;j++){
arr1[j-arguments[1]]=arr[j];
arr[j]=null;
}
arr.length=arguments[1];
}
return arr1;
}else if(arguments.length===3){
if(arguments[2]===0){
return [];
}else{
if(arguments[2]<0) return arr1;
if(arguments[1]<0) arguments[1]=arr.length+arguments[1];
for(var k=arguments[1];k<arguments[1]+arguments[2];k++){
arr1[k-arguments[1]]=arr[k];
arr[k]=null;
}
for(var k=arguments[1];k<arr.length;k++){
arr[k]=arr[k+arguments[2]];
}
arr.length=arr.length-arguments[2];
return arr1;
}
}else if(arguments.length>=4){
if(arguments[1]<0) arguments[1]=arr.length+arguments[1];
if(arguments[2]<=0){
for(var m=0;m<arguments.length-3;m++){
arr[arr.length]=arguments[3+m];
}
return [];
}else{
for(var k=arguments[1];k<arguments[1]+arguments[2];k++){
arr1[k-arguments[1]]=arr[k];
arr[k]=null;
}
for(var k=arguments[1];k<arr.length;k++){
arr[k]=arr[k+arguments[2]];
}
arr.length=arr.length-arguments[2];
for(var n=0;n<arguments.length-3;n++){
arr[arr.length]=arguments[3+n];
}
return arr1;
}
}
}
var arr=[0,1,2,3,4,5,6,7,8];
var arr1=splice(arr,2,2,9,10);
console.log(arr1,arr);
</script>