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

javascript 的splice函数
<html>
<body>

<script type="text/javascript">
var arrayconntor = [];

function addConntor(obj) {

arrayconntor[arrayconntor.length] = obj;//添加元素
}

function Connector(sourceid,targetid) {

   this.sid = sourceid;
   this.tid = targetid;
}
for (var t = 0; t < 10; t++) {

   var conobj = new Connector("source" + t, "target" + t);
   addConntor(conobj);
}

//var arr = new Array(6)
//arr[0] = "George"
//arr[1] = "John"
//arr[2] = "Thomas"
//arr[3] = "James"
//arr[4] = "Adrew"
//arr[5] = "Martin"
for(var s=0;s<arrayconntor.length;s++){
document.write("原:"+arrayconntor[s].sid+"目:"+arrayconntor[s].tid + "<br />")
}

for(var r=0;r<arrayconntor.length;r++){
 arrayconntor.splice(r,1);
}

document.write("********************<br />");

for(var s=0;s<arrayconntor.length;s++){
document.write("原:"+arrayconntor[s].sid+"目:"+arrayconntor[s].tid + "<br />")
}

</script>

</body>
</html>


输出结果为:
原:source0目:target0
原:source1目:target1
原:source2目:target2
原:source3目:target3
原:source4目:target4
原:source5目:target5
原:source6目:target6
原:source7目:target7
原:source8目:target8
原:source9目:target9
********************
原:source1目:target1
原:source3目:target3
原:source5目:target5
原:source7目:target7
原:source9目:target9

------解决方案--------------------
    //删除source1,source2,source3
    for (var r = 0; r < arrayconntor.length; ) {
        var o = arrayconntor[r];
        if (o.sid == 'source1' 
------解决方案--------------------
 o.sid == 'source2' 
------解决方案--------------------
 o.sid == 'source3') arrayconntor.splice(r, 1);
        else r++;//自增放这里来,不执行删除操作才增加
    }

------解决方案--------------------

for(var r=arrayconntor.length-1;r>=0;r--){
if(...){
 arrayconntor.splice(r,1);
}
}