在Swift中使用属性和Map过滤自定义对象的数组

艾伦·亚历山大(Alen Alexander)

我的模型课如下:

struct Job: Decodable, Equatable, Hashable {
   var id: Int?
   var status: String?
   var priority: String?
}

我有2个对象数组(工作)为:

 var jobModel = [Job]()
 var filteredJobModel = [Job]()

案例jobModel有5个要素。filteredJobModel有2个元素(的子集jobModel)。在中filteredJobModelstatus两个对象的值已通过search操作更改我想用来更新jobModel背面filteredJobModel,其中对象与id属性匹配

有什么办法可以解决这个问题?我本可以对[String]使用filtermap,但是,我想知道如何为自定义对象数组实现高阶函数。

邓肯
for (index, job) in idsJobModel.enumerated() {
    if let match = arrFiltetered.first( where: {job.id == $0.id} ) {
     idsJobModel[index] = match
   }
}

或者,如果您更喜欢使用地图:

idsJobModel = idsJobModel.map {
    let myID = $0.id
    if let match = arrFiltetered.first( where: {myID == $0.id} ) {
        return match
    } else {
        return $0
    }
}

上面的代码的任何一个版本都将具有O(n²)性能,因此当您的数组变得大于≈30个元素时,它的运行速度大大降低。需要对其进行调整,以使其在较大的阵列上表现良好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Swift中过滤自定义对象的嵌套数组

在Swift中过滤自定义对象的数组

在自定义过滤器中使用数组

在Swift中使用Map更改自定义结构属性

在Swift中使用值数组按属性过滤对象数组

过滤自定义对象的数组

如何使用.map添加对象的自定义属性

使用reduce的自定义对象数组内的属性的总和

Firebase Firestore - 在 Swift 的自定义对象中使用 ServerTimeStamp

Powershell 数组和自定义对象

通过带有条件的自定义属性和其次自定义属性 desc 订购 swift 数组

Lodash:无法通过自定义谓词过滤由匹配属性和函数组成

在自定义注释中使用数组

使用数组的自定义对象

如何根据条件过滤自定义对象数组

自定义对象属性-多个基本变量或对象数组

从自定义对象数组中获取属性数组

Swift如何按属性值对自定义对象数组进行排序

自定义属性以使用空值过滤属性

Boost :: graph Dijkstra和自定义对象和属性

在 C# 中使用反射访问对象中的自定义属性及其值

如何在javascript中使用map或其他方法创建自定义数组?

使用 Swift 4 搜索自定义 UITableCell 和过滤器的项目

自定义属性要求对象引用,而不是数组

我可以在JavaScript中使用自定义toString来创建对象数组吗?

在 Xamarin 中使用多个自定义对象数组填充单个 Listview

如何在 Python 中使用 jsonschema 验证自定义对象数组

获取要在自定义属性中使用的属性值

使用jQuery.map()函数创建自定义对象数组