日期:2014-05-16  浏览次数:20427 次

对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;
}