我想从数组中删除自定义类型值的元素。
我想传递一个变体实例以将其从数组中删除,我不想使用removeAtIndex()。
var favoriteVariants: [Variant]
func removeVariant(variant: Variant)
{
}
最佳答案
如果Variant
是Equatable
,而您只想删除第一个与之匹配的代码:
if let idx = favoriteVariants.indexOf(variant) {
favoriteVariants.removeAtIndex(idx)
}
如果不是
Equatable
,并且您还有其他匹配条件,则只能找到一个要删除的条件:let idx = favoriteVariants.indexOf {
// match $0 to variant
}
if let idx = idx {
favoriteVariants.removeAtIndex(idx)
}
(这些假设是Swift 2.0 –如果是1.2,则是
find(favoriteVariants, variant)
而不是indexOf
,并且没有一个需要关闭的版本,尽管write one并不难)如果要一次性删除多个文件,请执行以下操作:
favoriteVariants = favoriteVariants.filter {
// criteria to _keep_ any given favorite
}
如果您想要做的足以证明其合理性,那么所有这些都可以包装在扩展中。
关于ios - 如何在Swift中从数组中删除给定自定义类型值的元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31181255/