对Collection(集合)中的对象删除后索引变更的问题?
- JScript code
function ObjArray(){ this.Count=0;}ObjArray.prototype.Add=function(text){ this[this.Count++]=text;} var objA=new ObjArray(); objA.Add("a"); objA.Add("b"); objA.Add("c"); var x=objA[1];//此时用objA[1]访问能得到字符'b'//RemoveAt(1);//x=objA[1];//希望x的值是'c'怎样定义RemoveAt(index)方法,当调用objA.RemoveAt(1)时,能删除索引为1的元素,删除完后用objA[1]访问能得到字符'c'?问题是删除完后,怎样重新设置每个元素的索引
[解决办法]
ObjArray.prototype.RemoveAt=function(index){
//index验证省略
var o=this[index];
for(var i=index;i<this.count-1;){
this[i]=this[++i]
}
this[this.count-1]=null;
return o;
}