首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Swift中从数组中删除元素

如何在Swift中从数组中删除元素
EN

Stack Overflow用户
提问于 2014-06-05 12:26:36
回答 12查看 378.5K关注 0票数 287

如何在Apple的新语言Swift中取消设置/删除数组中的元素?

下面是一些代码:

代码语言:javascript
复制
let animals = ["cats", "dogs", "chimps", "moose"]

如何从数组中删除元素animals[2]

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2014-06-05 12:30:17

let关键字用于声明不能更改的常量。如果你想修改一个变量,你应该改用var,例如:

代码语言:javascript
复制
var animals = ["cats", "dogs", "chimps", "moose"]

animals.remove(at: 2)  //["cats", "dogs", "moose"]

保持原始集合不变的一种不变的替代方法是使用filter创建一个新的集合,而不删除您想要删除的元素,例如:

代码语言:javascript
复制
let pets = animals.filter { $0 != "chimps" }
票数 369
EN

Stack Overflow用户

发布于 2018-01-04 17:55:23

对于Swift4:

代码语言:javascript
复制
list = list.filter{$0 != "your Value"}
票数 25
EN

Stack Overflow用户

发布于 2018-06-20 03:10:53

从Xcode 10+开始,根据WWDC 2018 session 223, "Embracing Algorithms,"的说法,mutating func removeAll(where predicate: (Element) throws -> Bool) rethrows将是未来的一个好方法

苹果的例子:

代码语言:javascript
复制
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."

请参阅Apple's Documentation

因此,在OP的例子中,删除animals2,“黑猩猩”:

代码语言:javascript
复制
var animals = ["cats", "dogs", "chimps", "moose"]
animals.removeAll(where: { $0 == "chimps" } )
// or animals.removeAll { $0 == "chimps" }

这种方法可能是首选的,因为它具有很好的伸缩性(线性与二次),可读且干净。请记住,它只能在Xcode中工作,而且在写这篇文章的时候,它还在测试版中。

票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24051633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档