如何将这个数组分割成单独的元素/数组,以便在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") } }