Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 根据swift中的条件将索引位置更改为0_Arrays_Swift - Fatal编程技术网

Arrays 根据swift中的条件将索引位置更改为0

Arrays 根据swift中的条件将索引位置更改为0,arrays,swift,Arrays,Swift,我有一个类似的数组 [openingTimes(id: 389A2E43-65C3-4555-8878-D63E1D9BE664, day: "Sunday", workingHours: "11AM-4PM 8PM-11PM"), openingTimes(id: 50041432-5709-4F9D-BCF0-935504741037, day: "Monday", workingHours: "11AM-4PM 8PM-

我有一个类似的数组

[openingTimes(id: 389A2E43-65C3-4555-8878-D63E1D9BE664, day: "Sunday", workingHours: "11AM-4PM 8PM-11PM"), openingTimes(id: 50041432-5709-4F9D-BCF0-935504741037, day: "Monday", workingHours: "11AM-4PM 8PM-11PM"), openingTimes(id: 5A7F2A66-DABD-470D-9C5B-3E4EA0BA38F6, day: "Tuesday", workingHours: "11AM-4PM 8PM-11PM"),openingTimes(id: 9D977AE4-BC50-4D3E-9E36-6A3118A54F77, day: "Wednesday", workingHours: "11AM-4PM 8PM-11PM"), openingTimes(id: 343E3918-14A3-411A-A43F-EBF1D6F13B58, day: "Thursday", workingHours: "1PM-5PM 8PM-12PM"), openingTimes(id: B658E07B-BBC8-4802-8C0A-DA79A0871BF8, day: "Friday", workingHours: "11AM-4PM 8PM-11PM"), openingTimes(id: 29A15DC2-E0A1-46DA-A022-CF6102B239F4, day: "Saturday", workingHours: "11AM-4PM 8PM-11PM")]
当日期与当前日期匹配时,我需要将索引位置更改为0?我们如何才能做到这一点? 目前我正在使用以下功能取当天

func getTodayWeekDay()-> String{
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "EEEE"
    let weekDay = dateFormatter.string(from: Date())
    return weekDay
}

您可以找到第一个索引,其中day等于今天的工作日,从该索引中获取序列,删除该子范围并在startIndex中插入子序列的内容。请注意,Swift惯例是以小写字母开头命名结构:






你想得到今天吗?这就是你要问的吗?你的问题完全不清楚。“将索引位置更改为
0
”是什么意思?你的问题中根本没有索引。如果日期与今天的工作日一致,是否希望将元素移到集合的开始位置?是否要移动数组以使当前日期位于位置0?@JoakimDanielsonYes@Rob. 我需要根据今天的情况重新安排索引位置,使之与今天匹配,但我需要以下格式打开时间//[{id“B658E07B-BBC8-4802-8C0A-DA79A0871BF8”,日期“星期五”,工作时间“上午11点到下午4点8PM-11PM”},{id“389A2E43-65C3-4555-8878-D63E1D9BE664”,日期“星期六”,工作时间“上午11点到下午4点8PM-11PM”},{id“50041432-5709-4F9D-BCF0-935504741037”,日期“星期日”,工作时间“上午11点至下午4点8点至晚上11点”},{id“5A7F2A66-DABD-470D-9C5B-3E4EA0BA38F6”,@Ben10您只需从该索引中获取序列,删除该子范围并在startIndex中插入子序列的内容。我个人可能会使用
日历
获取工作日,然后使用该日历对
日期格式化程序进行索引t@LeoDabus为什么?这可以通过
DateFormatter.locale
修改。
extension Date {
    static var weekDay: String { Date().weekDay }
    var weekDay: String { Formatter.weekDay.string(from: self) }
}
extension Formatter {
    static let weekDay: DateFormatter = {
        let dateFormatter = DateFormatter()
        dateFormatter.locale = Locale(identifier: "en_US_POSIX")
        dateFormatter.dateFormat = "cccc"
        return dateFormatter
    }()
}
struct OpeningTimes {
    let id: String
    let day: String
    let workingHours: String
}
var openingTimes: [OpeningTimes] = [
    .init(id: "389A2E43-65C3-4555-8878-D63E1D9BE664", day: "Sunday", workingHours: "11AM-4PM 8PM-11PM"),
    .init(id: "50041432-5709-4F9D-BCF0-935504741037", day: "Monday", workingHours: "11AM-4PM 8PM-11PM"),
    .init(id: "5A7F2A66-DABD-470D-9C5B-3E4EA0BA38F6", day: "Tuesday", workingHours: "11AM-4PM 8PM-11PM"),
    .init(id: "9D977AE4-BC50-4D3E-9E36-6A3118A54F77", day: "Wednesday", workingHours: "11AM-4PM 8PM-11PM"),
    .init(id: "343E3918-14A3-411A-A43F-EBF1D6F13B58", day: "Thursday", workingHours: "1PM-5PM 8PM-12PM"),
    .init(id: "B658E07B-BBC8-4802-8C0A-DA79A0871BF8", day: "Friday", workingHours: "11AM-4PM 8PM-11PM"),
    .init(id: "29A15DC2-E0A1-46DA-A022-CF6102B239F4", day: "Saturday", workingHours: "11AM-4PM 8PM-11PM")
]

if let index = openingTimes.firstIndex(where: {$0.day == Date.weekDay}) {
    let subsequence = openingTimes[index...]
    openingTimes.removeSubrange(index...)
    openingTimes.insert(contentsOf: subsequence, at: 0)
}

openingTimes //  {id "29A15DC2-E0A1-46DA-A022-CF6102B239F4", day "Saturday", workingHours "11AM-4PM 8PM-11PM"}, {id "389A2E43-65C3-4555-8878-D63E1D9BE664", day "Sunday", workingHours "11AM-4PM 8PM-11PM"}, {id "50041432-5709-4F9D-BCF0-935504741037", day "Monday", workingHours "11AM-4PM 8PM-11PM"}, {id "5A7F2A66-DABD-470D-9C5B-3E4EA0BA38F6", day "Tuesday", workingHours "11AM-4PM 8PM-11PM"}, {id "9D977AE4-BC50-4D3E-9E36-6A3118A54F77", day "Wednesday", workingHours "11AM-4PM 8PM-11PM"}, {id "343E3918-14A3-411A-A43F-EBF1D6F13B58", day "Thursday", workingHours "1PM-5PM 8PM-12PM"}, {id "B658E07B-BBC8-4802-8C0A-DA79A0871BF8", day "Friday", workingHours "11AM-4PM 8PM-11PM"}]