gpt4 book ai didi

ios - 如何从 Swift3 iOS 中的对象数组中查找唯一值

转载 作者:行者123 更新时间:2023-11-28 07:30:58 25 4
gpt4 key购买 nike

我已经声明了一个 Array 如下:

  var sessionsToDisplayTemp : [SessionData] = []

sessionsToDisplayTemp 的值为:

[<SessionData: 0x600001c16a30> (entity: SessionData; id: 0x8b2a8ba144e57f29 <x-coredata://0A752C13-D33E-4AE2-BE3E-7B856C0EE8D9/SessionData/p3> ; data: {

startTime = "14:30";
switchInGroup = FALSE;

}), <SessionData: 0x600001c16a80> (entity: SessionData; id: 0x8b2a8ba144f97f29 <x-coredata://0A752C13-D33E-4AE2-BE3E-7B856C0EE8D9/SessionData/p4> ; data: {

startTime = "13:30";
switchInGroup = TRUE;

}), <SessionData: 0x600001c16cb0> (entity: SessionData; id: 0x8b2a8ba144fd7f29 <x-coredata://0A752C13-D33E-4AE2-BE3E-7B856C0EE8D9/SessionData/p5> ; data: {
startTime = "13:30";
switchInGroup = FALSE;

})]

我的问题是我必须检查开始时间,如果开始时间相同则必须从这个数组中隐藏并且这个数组应该按照开始时间的顺序。我的意思是最终数组应该是:

[<SessionData: 0x600001c16a30> (entity: SessionData; id: 0x8b2a8ba144e57f29 <x-coredata://0A752C13-D33E-4AE2-BE3E-7B856C0EE8D9/SessionData/p3> ; data: {

startTime = "13:30";
switchInGroup = TRUE;

}), <SessionData: 0x600001c16a80> (entity: SessionData; id: 0x8b2a8ba144f97f29 <x-coredata://0A752C13-D33E-4AE2-BE3E-7B856C0EE8D9/SessionData/p4> ; data: {

startTime = "14:30";
switchInGroup = FALSE;

})]

我已经完成了基于开始时间的升序部分:

sessionsToDisplayTemp.sort(by: { $0.startTime?.compare(($1.startTime)!) == .orderedAscending })

谁能帮我实现这个目标。谢谢。

最佳答案

这将创建一个数组 out,该数组已排序且没有重复项

var out = [SessionData]()
for data in sessionsToDisplayTemp.sorted(by: { $0.startTime < $1.startTime}) {
if out.isEmpty {
out.append(data)
} else if let last = out.last, last.startTime != data.startTime {
out.append(data)
}
}

关于ios - 如何从 Swift3 iOS 中的对象数组中查找唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54723304/

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