我有两个数组:
var sessionsToDisplay : [SessionData]
var sessionsToDisplayTemp : [SessionData]
SessionData
类具有startTime
属性。因此,如果第一个sessionToDisplay
数组包含以下项:
SessionData(startTime: "08:00", ...),
SessionData(startTime: "10:30", ...),
SessionData(startTime: "13:30", ...),
SessionData(startTime: "16:00", ...),
和sessionsToDisplayTemp
包含以下内容:
SessionData(startTime: "06:30", ...),
SessionData(startTime: "16:00", ...),
SessionData(startTime: "12:30", ...),
SessionData(startTime: "15:30", ...),
SessionData(startTime: "08:00", ...),
我必须从sessionsToDisplayTemp
中删除元素,该元素的startTime
已经在第一个数组中了。因此结果应该是包含以下元素的数组:
SessionData(startTime: "06:30", ...),
SessionData(startTime: "12:30", ...),
SessionData(startTime: "15:30", ...),
SessionData(startTime: "08:00", ...),
答案 0 :(得分:1)
您可以使用filter
来检查一个对象是否不在另一个数组中
let out = sessionsToDisplayTemp.filter {data in
!sessionsToDisplay.contains {$0.startTime == data.startTime}
}
或者如果您想直接将其删除
sessionsToDisplayTemp.removeAll { data in
sessionsToDisplay.contains {data.startTime == $0.startTime}
}