2017-10-10 429 views
-2

我想删除二维数组中的某个元素。 代码:如何删除swift数组中的元素?

var newlyDataArray = [[CommonItemModel]](){ 
    didSet{ 

    for dataArray in newlyDataArray{ 
     for model in dataArray{ 
      if model.isSelected == false { 
       dataArray.remove(at: dataArray.index(of: model)) 
      } 

     } 
    } 

    self.tableView.reloadData() 
    } 
} 

但得到一个错误说:dataArray的是让常数。所以我不能改变它。那么我怎样才能将[[CommonItemModel]]定义为一个常量?

+1

你的代码是这样,当蛇吃它自己的尾巴 - 在枚举它的同时改变一个集合;尽量不要这样做,那么错误也会消失。 – holex

+0

迭代时不要移除对象 - 所以试试我的第二个解决方案。请告诉我它是否适合你。 – LenglBoy

回答

1

斯威夫特3本身可以像

array.remove(object) 

你也可以过滤列表中移除一个对象,这样您便不会需要这个循环:

array = array.filter { $0.isSelected == false } 
+0

第二种方式适用于我。但是我没有在Swift3中找到array.remove(object)。我不知道为什么,因为objective-c比filer方法更方便,更方便。 – Neko