如何在数组中追加数组?
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
}
我有一个工作时间数组,在这个数组中,还有另一个班次数组。我想删除工作日等于“星期一”
的班次数组中的所有实例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
}