我有一系列对象,例如。
var arrStudents = [S1,S2,S3,S4,S5]
Run Code Online (Sandbox Code Playgroud)
这里s1是学生班级的对象
class Student {
var id:Int!
var name:String!
var address:String?
var phone:Int!
}
Run Code Online (Sandbox Code Playgroud)
现在我想按学生 ID 从数组中删除一条记录。请告诉我该怎么做。
循环遍历数组的所有索引并检查要删除的 id 是否匹配,如果是,它将过滤掉,您可以删除该索引:-)
let idToDelete = 10
if let index = arrStudents.index(where: {$0.id == idToDelete}) {
array.remove(at: index)
}
Run Code Online (Sandbox Code Playgroud)
如果您想在单次迭代中删除多个值,您应该从最后一个索引到第一个索引开始循环,这样它就不会崩溃(越界错误)
var idsToDelete = [10, 20]
for id in idsToDelete {
for (i,str) in arrStudents.enumerated().reversed()
{
if str.id == id
{
arrStudents.remove(at: i)
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7943 次 |
| 最近记录: |