iOS Swift中:如何存储数组中所有重复值的索引?
举个例子,我有这个数组:
let dates = ["01/02/16", "02/02/16", "03/02/16", "01/02/16", "02/02/16"]
我喜欢做的是将每个String
date作为关键字存储在字典中,对于每个重复的键,我喜欢将它的索引存储为数组,并将其与重复键相关联。
例如, 01/02/16
发生在索引0
和3
。 02/02/16
发生在指数1
和4
。
我喜欢有一个这样的字典:
[ "01/02/16": [0, 3], "02/02/16": [2, 4], "03/02/16": [1] ]
我知道如何跟踪有多less重复的条目是这样的:
let dates = ["01/02/16", "01/02/16", "02/02/16", "03/02/16"] var dateCounts:[String:Int] = [:] for date in dates { dateCounts[date] = (dateCounts[date] ?? 0) + 1 } for (key, value) in dateCounts { print("\(key) occurs \(value) time/s") }
但是,我不确定如何跟踪重复的索引?
试试这个
import UIKit class ViewController: UIViewController { var duplicatedDict : [String:[Int]] = [:] let dates = ["01/02/16", "01/02/16", "02/02/16", "03/02/16"] override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. for (index,dateString) in dates.enumerated() { if(duplicatedDict[dateString] == nil){ duplicatedDict[dateString] = [index] }else{ duplicatedDict[dateString]?.append(index) } } debugPrint(duplicatedDict) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }
控制台日志输出
[“02/02/16”:[2],“01/02/16”:[0,1],“03/02/16”:[3]]
希望这可以帮助