我的Swift应用程序中有一个结构:
open class Cluster : NSObject {
open var username: String? = ""
open var id: String? = ""
open var deleted: Bool? = false
}
Run Code Online (Sandbox Code Playgroud)
现在,我遍历此数组,并向其中添加新元素,但前提是这些元素尚不存在:
if(!self.array.contains(where: {$0.id==temp.id}))
{
self.array.append(temp);
}
Run Code Online (Sandbox Code Playgroud)
我想对这段代码进行调整,以便它不仅添加不存在的新元素,而且还删除了同时将其标志deleted更改为true 的那些元素。
我开始编写以下代码:
if(!self.array.contains(where: {$0.id==temp.id}))
{
self.array.append(temp);
} else {
if(temp.deleted == true){
self.array.remove //how can I remove here this specific element?
}
}
Run Code Online (Sandbox Code Playgroud)
要从数组中删除特定元素,应该首先获取该元素的索引,然后删除,如下所示:
if let index:Int = self.array.index(where: {$0.id == temp.id && $0.deleted == true}) {
self.array.remove(at: index)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1398 次 |
| 最近记录: |