我有一系列的作業時間,在這個陣列中,還有另一個班次。我想洗掉班次陣列中作業日等于“星期一”的所有實體
struct Shift {
let id: String = UUID().uuidString
var weekday: String
var startTime: String
var endTime: String
var error: Bool
}
struct WorkingHours: Identifiable {
let id: String = UUID().uuidString
var availability: [Shift]
}
class AvailabilityManager: ObservableObject {
@Published var workingHours: [WorkingHours] = []
}
在我看來:
@EnvironmentObject var availabilityManager: AvailabilityManager
self.availabilityManager.workingHours.removeAll(where: {$0.availability.weekday == "Monday"})
但是,它說:“'[Shift]' 型別的值沒有成員 'weekday'”
任何幫助表示贊賞:)
uj5u.com熱心網友回復:
改變
self.availabilityManager.workingHours.removeAll(where: {$0.availability.weekday == "Monday"})
到
self.availabilityManager.workingHours.removeAll(where: {$0.availability.contains(where: {$0.weekday == "Monday"})})
更多速記方法
self.availabilityManager.workingHours.removeAll { $0.availability.contains { $0.weekday == "Monday" } }
uj5u.com熱心網友回復:
將以下函式添加到WorkingHours
mutating func removeShift(weekDay: String) {
availability = availability.filter { $0.weekday != weekDay }
}
并稱它為
workingHour.removeShift(weekDay: "Monday")
如果您有一個陣列,則可以使用例如WorkinHours呼叫該方法map
workingHoursArray = workingHoursArray.map {
var workingHours = $0
workingHours.removeShift(weekDay: "Monday")
return workingHours
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/466095.html
