如何将这个数组分割成单独的元素/数组,以便在Swift的Table中使用?
我有下面的代码,我相信拆分我的数组(字典)成三个部分使用for (_ , value) in dict {
。
let json = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? [String:AnyObject] print (json!) if let dict = json?["playerForm"] as? [String:AnyObject] { print ("step 1") for (_ , value) in dict { if let arr = value as? [[String:Any]] { print(arr) self.leagueForm = arr.flatMap { Form($0) } for i in 0..<self.leagueForm.count { let form = self.leagueForm[i] self.formGuide.append(form.player_result!) } print ("break") } } print (self.formGuide) }
我希望在self.leagueForm里有三个元素包含每个玩家的数据。
这个数据然后被放到这个自定义类中:
struct Form { var player_result: String? var player_name: String? var result_date: String? var result_id: String? init(_ dictionary: [String : Any]) { self.player_result = dictionary["result"] as? String ?? "" self.player_name = dictionary["name"] as? String ?? "" result_date = dictionary["date"] as? String ?? "" result_id = String(dictionary["results_id"] as? Int ?? 0) } } var leagueForm = [Form]()
当我print (arr)
它打印完整的数组。
我的目标是在自定义课程中有3组数据,每个玩家有1组数据。 您可以在下面的截图中看到每个玩家的rest时间。
在这张图片的最后一行,你会看到每个玩家的表格都被添加到了这个元素中。
想要我想要的是如下所示:
[name: G , results: "W", "D", "W", "D", "W", "W", "D", "L"] [name: Dicky, results: "L", "L", "D", "W", "L", "W", "W", "W"] [name: Sultan, results: "W", "W", "D", "L", "L", "L", "D", "L"]
那我可以通过一张表来显示结果。
我如何做到这一点? 或者我如何testing我的自定义类以查看到目前为止我在哪里?
你可以做到这一点
var arrResult : [String] = [] let arrMainData = [["name":"ABC","result":"result1"],["name":"ABC","result":"result2"],["name":"ABC","result":"result3"]] let name : String! = arrMainData[arrMainData.count-1]["name"] for index in 0...arrMainData.count-1{ arrResult.append(arrMainData[index]["result"]!) } let myArr : [String: AnyObject] = ["name" : name,"arrResult":arrResult] print(myArr)
结果应该是[名称:ABC,结果:[“result1”,“result2”,“result3”]]
for each
一个实现for循环来说都是一个更快捷的方式,但是Sunil实现它的方式在function上是相同的。 你可以简化的一件事是你为每个循环实现你的方式 – 如果你不需要索引,根本不要包含它 – 你不需要用_
以下是您可能会重写代码的leagueForm部分的方法
for value in dict { if let arr = value as? [[String:Any]] { print(arr) self.leagueForm = arr.flatMap { Form($0) } for form in self.leagueForm { self.formGuide.append(form.player_result!) } print ("break") } }