如何快速获取具有特定值的所有元组

问题描述

我有一个像这样的元组数组:

var countryData = [
(country:"Australia",item:"GDP",Year:"2019",dataValue:"1.434 trillion"),(country:"Australia",item:"CPI",dataValue:"6401.0"),item:"Inflation",dataValue:"1.61%"),(country:"Brazil",dataValue:"$1.868 trillion"),...
(country:"Zimbabwe",dataValue:"255.29%"),]

我想创建一个实例变量来获取所有包含“澳大利亚”的元组。我假设我必须使用一个for循环并包含函数,但是我的敏捷性不是那么好,并且我无法使其正常工作。或者,如果您提出的建议不是最好的解决办法,也将受到赞赏。

解决方法

您是对的!您可以为此使用for循环。另一种方法是过滤器运算符

过滤运算符方式使您能够根据特定条件过滤任何类型的数组。

let neededList = countryData.filter { $0.country == "Australia" }

用于循环方式

var result: [(country: String,item: String,Year: String,dataValue: String)] = []

for item in countryData {
    if item.country == "Australia" {
        result.append(item)
    }
}

print(result)
,

使用高阶filter方法。方法如下:

let australiaData = countryData.filter { $0.country == "Australia" }