我需要知道一个很好的解决方案在斯威夫特为下面的问题,我面临的。
我有一个声明为var dataArray = [PlanModel]()的模型数组。

class PlanModel: {

var isPurchased:String?
var planName:String?
}

现在我从服务器获取数据,然后用模型填充dataArraydataArray由3个模型组成。模型的价值是:
模型1:
isPurchased = "true"
planName = "Question"

模型2:
isPurchased = "true"
planName = "Personal"

模型3:
isPurchased = "false"
planName = "Full"

我需要的是通过检查计划是否通过检查isPurchased的值购买来减少这个数组。如果为真,则将其从数组中移除,如果为假,则将其保留在数组中。
请告诉我用什么更简单有效的方法来快速完成这项工作?

最佳答案

您可以使用filter函数

var reducedArray = dataArray.filter {$0.isPurchased == "false"}

这将检查dataArray的每个元素,如果元素isPurchased"false"它将保留它

10-05 23:18