从满足条件的struct中提取值

ult*_*lex 0 swift

我有一个针对不同动物的结构,以及这些动物的价值观.我给它添加了动物.

struct Animal {
var type: String
var weight: String
var cost: String
}

var animals = [Animal]()

func addAnimal(type: String, weight: String, cost: String){
    animals.append(Animal(type: type, weight: weight, cost: cost))
}


addAnimal("monkey", "80", "300")
addAnimal("zebra", "200", "500")
addAnimal("monkey", "50", "250")
Run Code Online (Sandbox Code Playgroud)

我想说,if type == "monkey"然后返回猴子的所有重量.在这个例子中,我希望代码返回值"80"和"50".

我是编码的新手,所以对此有任何建议会有所帮助.谢谢

Leo*_*bus 5

您可以组合过滤器和地图来完成您想要的操作,如下所示:

let monkeysWeights = animals.filter{$0.type == "monkey"}.map{$0.weight}

println(monkeysWeights)  // ["80", "50"]
Run Code Online (Sandbox Code Playgroud)