如何在数组中追加数组?

How to append an array inside an array?

我有一个工作时间数组,在这个数组中,还有另一个班次数组。我想删除工作日等于“星期一”

的班次数组中的所有实例
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: {[=11=].availability.weekday == "Monday"})

但是,它说:“'[Shift]' 类型的值没有成员 'weekday'”

感谢任何帮助:)

改变

self.availabilityManager.workingHours.removeAll(where: {[=10=].availability.weekday == "Monday"})

self.availabilityManager.workingHours.removeAll(where: {[=11=].availability.contains(where: {[=11=].weekday == "Monday"})})

更多shorthand方法

self.availabilityManager.workingHours.removeAll { [=12=].availability.contains { [=12=].weekday == "Monday" } }

将以下函数添加到WorkingHours

mutating func removeShift(weekDay: String) {
    availability = availability.filter { [=10=].weekday != weekDay }
}

并这样称呼它

workingHour.removeShift(weekDay: "Monday")

如果您有一个 WorkinHours 的数组,您可以使用 map 调用该方法,例如

workingHoursArray = workingHoursArray.map {
    var workingHours = [=12=]
    workingHours.removeShift(weekDay: "Monday")
    return workingHours
}