【发布时间】:2016-12-04 16:00:20
【问题描述】:
好吧,这应该不会太难,但星期天早上证明我错了......
我有一个带有结构的Array,并且只想删除一个与其名称属性匹配的结构到String。例如:
struct Person {
let name: String
}
var myPersons =
[Person(name: "Jim"),
Person(name: "Bob"),
Person(name: "Julie"),
Person(name: "Bob")]
func removePersonsWith(name: String) {
myPersons = myPersons.filter { $0.name != name }
}
removePersonsWith(name: "Bob")
print(myPersons)
结果:
[Person(name: "Jim"), Person(name: "Julie")]
但是我如何只删除 一个 Bob?
【问题讨论】:
-
告诉我这两个 Bob 有什么区别,然后我会告诉你如何。但如果没有,您可以设置一个 bool 标志,这样一旦过滤器设置为 false,它就会退出循环
-
这两个Bob完全一样,它们是彼此的克隆,但我只想删除其中一个。
-
我很好奇你为什么要使用这样的功能?是删除重复项吗?还是别的什么?
-
Person只是一个例子。我可以使用不同的示例,例如不同颜色的球,然后移除一个红球。或者在河里钓鱼,捕获(去除)一条鲑鱼,等等。