【问题标题】:How to compare array of dates (Strings) with single date in swift 3如何在swift 3中将日期数组(字符串)与单个日期进行比较
【发布时间】:2017-12-06 14:33:30
【问题描述】:

我有来自本地数据库的日期(字符串)数组,如下所示。

datesFromDBArray:["04/12/2017 07:10:41", "04/12/2017 07:12:17", "04/12/2017 07:13:54", "04/12/2017 07:17:45", "04/12/2017 07:18:56", "05/12/2017"]

这里,同一个日期可以有多次。

同样来自同一个数据库,我还得到了一些其他数据,称为操作。

ActionsDBArray:["1", "6", "1", "1", "1", "2", "2", "2", "4", "1", "5", "2", "3"]

这两个数据来自本地数据库。并且两个数组的计数相等。

现在,我从服务器响应中获取日期数。就像

TotalDaysServerArray:["22/11/2017 11:59:59", "23/11/2017 11:59:58", "24/11/2017 11:59:57"]

这里,我在表格视图中显示 TotalDaysServerArray 数据。

所以,在这里,如果用户按下第一个单元格,如 22/11/2017 11:59:59,我需要检查该日期(不是时间,只有相同的日期)是否存在于 datesFromDBArray 中,如果存在,则需要检查它存在多少个索引,并且需要获取 ActionsDBArray 相同的索引数据。

所以,我需要获取 ActionsDBArray 索引列表,并需要在其他地方显示该列表。

我尝试了一些不起作用的逻辑,所以我在这里发布查询。

任何人都可以建议我,如何实现这一目标?

【问题讨论】:

  • 逻辑上这不是日期数组,而是字符串数组!!
  • @PrashantTukadiya 已编辑。
  • 你试过什么?你遇到过哪些问题?请注意,我们不应该为您做作业。
  • 我尝试了一些不起作用的逻辑,所以,这就是我在这里提出这个查询的原因。

标签: arrays swift nsdate


【解决方案1】:
let clickedStr = TotalDaysServerArray[indexPath.row] 
let str =  clickedStr.components(separatedBy: " ").first
 for(index , value) in datesFromDBArray.enumerated() {
            if str == value.components(separatedBy: " ").first! {
                print(ActionsDBArray[index])
            }
       }

【讨论】:

    【解决方案2】:

    这是儿戏,不知道你的逻辑卡在哪里了

    注意:我已经在04/12/2017 07:10:41 中手动添加了第一个对象来测试逻辑

    var datesFromDBArray = ["04/12/2017 07:10:41", "04/12/2017 07:12:17", "04/12/2017 07:13:54", "04/12/2017 07:17:45", "04/12/2017 07:18:56", "05/12/2017"]
    var ActionsDBArray = ["1", "6", "1", "1", "1", "2", "2", "2", "4", "1", "5", "2", "3"]
    var TotalDaysServerArray = ["04/12/2017 11:59:59","22/11/2017 11:59:59", "23/11/2017 11:59:58", "24/11/2017 11:59:57"]
    
    let findingValue =  TotalDaysServerArray.first!
    
    print(findingValue)
    
    
    let index = datesFromDBArray.index { (string) -> Bool in
        string.components(separatedBy: " ").first == findingValue.components(separatedBy: " ").first
    }
    print(index)
    
    
    
    if let i = index {
        print("Your Object in ActionsDBArray \(ActionsDBArray[i])")
     }
    

    输出:
    2017 年 4 月 12 日 11:59:59

    可选(0)

    ActionsDBArray 1 中的对象

    希望对你有帮助

    【讨论】:

    • 在哪里可以从 ActionsDBArray 中获取数据?这里是多个值而不是单个值。
    • 你有索引 0 ,现在你可以在索引 0 处获取对象,这就是你要问的对吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多