我有一个像这样的自定义数组,我想删除学生ID为4的元素
var strNames = [Student(id: 1, name: "ghj"), Student(id: 4, name: "def"), Student(id: 9, name: "bkl")]
我经典地做到了这一点。有人可以帮我用Swift方式映射吗?
var sArray2: [Student] = []
for item in strNames {
if item.id != 4 {
sArray2.append(Student(id: item.id, name: item.name))
}
}
strNames = sArray2
答案 0 :(得分:4)
您可以使用RangeReplaceableCollection
变异方法:
mutating func removeAll(where shouldBeRemoved: (Element) throws -> Bool) rethrows
在您的情况下:
strNames.removeAll { $0.id == 4 }
答案 1 :(得分:0)
您还可以使用过滤器函数根据条件进行过滤,但是过滤器函数会返回带有过滤后值的新数组
var filteredArray = strNames.filter { (eachVal) -> Bool in eachVal.id != 4 }