关于Array和ArrayCollection的循环删除的问题

本文探讨了使用Flex ArrayCollection时,从ArrayCollection中删除元素的不同方法及其有效性。特别关注了循环删除过程中索引变化对删除操作的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

根据Array得到索引循环删除ArrayCollection中的数据出现问题。

 

伪代码描述:

下面的代码能正常工作

for(var i:int,i<array.length;i++){

 arrayColleciont.removeItemAt(i);

}

下面的却不能:

for(var i:int=array.length-1,i<0;i--){

 arrayColleciont.removeItemAt(i);

}

 

 

真实代码:

注意:
unAssignedList和 assignedListmx.controls.List  ,它们的 dataprovider 分别是 unassignedDatasassignedDatas

 源码

 private function addBtn_clickHandler(event:MouseEvent):void{
               var selectedIndeies:Array = this.unAssignedList.selectedIndices;
                var selectedItems:Array=this.unAssignedList.selectedItems;

              if(selectedItems.length<=0){
                        Alert.show("请选择 "+this.title," 选择 ");
                    return;

             }
                //按升序排序
                selectedItems.sort();
                //构造数据源 

               for(var index1:uint=0;index1<selectedItems.length;index1++){

                 assignedDatas.addItem(selectedItems[index1]);
                }
                   //下面的代码可以正常工作


              selectedIndeies.sort(Array.DESCENDING);

           

             for(var index:int=0;index<selectedIndeies.length;index++){

                  this.unassignedDatas.removeItemAt(selectedIndeies[index]);

              }

 

                 //下面蓝色的循环代码无法删除  unassignedDatas 的数据。

 

               //selectedIndeies.sort();

 

                  //        for(var index:int=selectedIndeies.length-1;index<0;index--){

         //  this.unassignedDatas.removeItemAt(selectedIndeies[index]);

//                }

 

//              将数据源提供给 List 以更新 View
                this.assignedList.dataProvider=this.assignedDatas;
                this.unAssignedList.dataProvider=this.unassignedDatas;
            }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值