2014-09-04 97 views
16

这是一种非常简单的找到类型为字符串,整数数组中的元素,等等如何在Swift中搜索包含struct元素的数组?

var States = ["CA", "FL", "MI"] 
var filteredStates = States.filter {$0 == "FL"} // returns false, true, false 

现在,我创建了一个结构

struct Candy{ 
    let name:String 
} 

,然后初始化它

var candies = [Candy(name: "Chocolate"), 
Candy(name: "Lollipop"), 
Candy(name: "Caramel")] 

任何人都可以请建议在包含结构元素的数组中找到“巧克力”的正确方法?我无法实现查找或过滤方法。

回答

25

通过以下代码,您将收到阵列中所有与"Chocolate"匹配的糖果结构。

var candiesFiltered = candies.filter{$0.name == "Chocolate"} 

如果你只是想要一个布尔值,如果已经发现与否,你可以使用下面的代码:

var found = candies.filter{$0.name == "Chocolate"}.count > 0 
+0

酷。谢谢为我工作! – 2014-09-04 12:42:54

+2

自从闭包'追踪'以后,语法可以简化为'filter {$ 0.name == ...}'。 – GoZoner 2014-09-04 14:49:39

+0

感谢GoZoner,我已经更新了答案。 – Prine 2014-09-04 15:38:34

相关问题