gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 23:24:23 24 4
gpt4 key购买 nike

我的模型类如下:

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 的子集)。在 filteredJobModel 中,两个对象的 status 值已被 search 操作更改。我想用 filteredJobModel 更新 jobModel,其中对象与 id 属性匹配。

有什么办法可以实现这种情况吗?我本来可以对 [String] 使用 filterma​​p,但是,我想知道如何为自定义对象数组实现高阶函数。

最佳答案

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

或者如果您更喜欢使用 map :

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

上面代码的任一版本都将具有 O(n²) 性能,因此当您的数组大于 ≈30 个元素时,它会显着变慢。它需要进行调整才能在更大的阵列上表现良好。

关于ios - 在 Swift 中使用属性和 Map 过滤自定义对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59080294/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com