如何将日期数组(字符串)与 swift 中的单个日期进行比较 3
How to compare array of dates (Strings) with single date in swift 3
我有一组日期(字符串),它们来自本地数据库,如下所示。
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"]
在这里,我在 table 视图中显示 TotalDaysServerArray 数据。
所以,在这里,如果用户按下第一个单元格,比如 22/11/2017 11:59:59,我需要检查 datesFromDBArray 中是否存在这个日期(不是时间,只有相同的日期),如果存在,那么需要检查它存在多少个索引,并且需要获取 ActionsDBArray 相同的索引数据。
所以,我需要获取 ActionsDBArray 索引列表,并需要在其他地方显示该列表。
我尝试了一些逻辑,但没有奏效,所以,我在这里发布查询。
任何人都可以建议我,如何实现这一点?
儿戏,不知道你的逻辑卡在哪了
注意:我在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])")
}
Output :
04/12/2017 11:59:59
Optional(0)
Your Object in ActionsDBArray 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])
}
}
我有一组日期(字符串),它们来自本地数据库,如下所示。
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"]
在这里,我在 table 视图中显示 TotalDaysServerArray 数据。
所以,在这里,如果用户按下第一个单元格,比如 22/11/2017 11:59:59,我需要检查 datesFromDBArray 中是否存在这个日期(不是时间,只有相同的日期),如果存在,那么需要检查它存在多少个索引,并且需要获取 ActionsDBArray 相同的索引数据。
所以,我需要获取 ActionsDBArray 索引列表,并需要在其他地方显示该列表。
我尝试了一些逻辑,但没有奏效,所以,我在这里发布查询。
任何人都可以建议我,如何实现这一点?
儿戏,不知道你的逻辑卡在哪了
注意:我在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])")
}
Output :
04/12/2017 11:59:59Optional(0)
Your Object in ActionsDBArray 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])
}
}