gpt4 book ai didi

ios - Swift iOS - 将数组过滤成类似对象的数组

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

j我有一个包含子对象的对象数组。

我想根据子对象将我的数组排序为数组数组

例如:数组

[employee, employee, employee, employee]

现在我想做的是像这样排序 ->

[[employee.job.jobName = "baker",employee.job.jobName = "baker"],
[employee.job.jobName = "sweeper",employee.job.jobName = "sweeper"]]

目标是创建一个 TableView ,其中部分标题将员工分组,其中他们的 job.jobName 相同。这些行将由这些员工、他们的姓名等组成。为了做到这一点,我需要一个唯一的 job.jobNames 数组来表示构成部分计数的员工,然后每个部分中的员工数组构成行数。

我尝试过使用 array.map 和 array.filter,但我想我需要一个组合,但我似乎无法解决这个问题。任何帮助将不胜感激!

最佳答案

以下是我对如何将您的员工数组拆分为数组数组的看法。

// Just needed to make the example work
struct Job {
var name: String
}

struct Employee {
var job: Job
}
/////////////////////////////////////////

let employees = [Employee(job: Job(name: "baker")), Employee(job: Job(name: "sweeper")), Employee(job: Job(name: "baker")), Employee(job: Job(name: "sweeper"))]

var jobs = Set<String>()

employees.forEach { jobs.insert($0.job.name) }

let sortedJobs = jobs.sort()

var groupedEmployees = [[Employee]]()
for jobName in sortedJobs {
groupedEmployees.append(employees.filter({ $0.job.name == jobName }))
}

print(groupedEmployees)

它产生所需的输出:

[[main.Employee(job: main.Job(name: "baker")), main.Employee(job: main.Job(name: "baker"))], [main.Employee(job: main.Job(name: "sweeper")), main.Employee(job: main.Job(name: "sweeper"))]]

关于ios - Swift iOS - 将数组过滤成类似对象的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34776355/

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