如何在Apple的新语言Swift中取消设置/删除数组中的元素?
下面是一些代码:
let animals = ["cats", "dogs", "chimps", "moose"]
如何从数组中删除元素animals[2]
?
发布于 2014-06-05 12:30:17
let
关键字用于声明不能更改的常量。如果你想修改一个变量,你应该改用var
,例如:
var animals = ["cats", "dogs", "chimps", "moose"]
animals.remove(at: 2) //["cats", "dogs", "moose"]
保持原始集合不变的一种不变的替代方法是使用filter
创建一个新的集合,而不删除您想要删除的元素,例如:
let pets = animals.filter { $0 != "chimps" }
发布于 2018-01-04 17:55:23
对于Swift4:
list = list.filter{$0 != "your Value"}
发布于 2018-06-20 03:10:53
从Xcode 10+开始,根据WWDC 2018 session 223, "Embracing Algorithms,"的说法,mutating func removeAll(where predicate: (Element) throws -> Bool) rethrows
将是未来的一个好方法
苹果的例子:
var phrase = "The rain in Spain stays mainly in the plain."
let vowels: Set<Character> = ["a", "e", "i", "o", "u"]
phrase.removeAll(where: { vowels.contains($0) })
// phrase == "Th rn n Spn stys mnly n th pln."
因此,在OP的例子中,删除animals2,“黑猩猩”:
var animals = ["cats", "dogs", "chimps", "moose"]
animals.removeAll(where: { $0 == "chimps" } )
// or animals.removeAll { $0 == "chimps" }
这种方法可能是首选的,因为它具有很好的伸缩性(线性与二次),可读且干净。请记住,它只能在Xcode中工作,而且在写这篇文章的时候,它还在测试版中。
https://stackoverflow.com/questions/24051633
复制相似问题