如何以给定格式减少 Swift 中的数组?我无法理解逻辑
How can I reduce my array in Swift in the given format? Am not able to get the logic
我有一个结构和一个数组如下
struct MyStruct : Codable {
var name:String
var slot:String
var id: Int
}
struct NewStruct : Codable {
var name:String
var slot:[String]
var id: Int
}
let data1 = MyStruct(name: "Ankit", slot: "1", id: 11)
let data2 = MyStruct(name: "Deric", slot: "1", id: 12)
let data3 = MyStruct(name: "Ankit", slot: "2", id: 11)
let data4 = MyStruct(name: "Deric", slot: "2", id: 12)
let data5 = MyStruct(name: "RandomName1", slot: "1", id: 13)
let data6 = MyStruct(name: "RandomName2", slot: "1", id: 14)
let data7 = MyStruct(name: "Ankit", slot: "3", id: 11)
var arrayOfData = [data,data2,data3,data4,data5,data6,data7]
我希望合并重复的名称或说 id,并且插槽应具有相应名称或 id 的数组,以供参考
我期待结果
[
NewStruct(name: "Ankit", slot: ["1","2","3"] ,id: 11),
NewStruct(name: "Deric", slot:["1","2"], id: 12),
NewStruct (name: "RandomName1", slot: ["1"], id: 13),
NewStruct(name: "RandomName2", slot: ["1"], id: 14)
]
我需要帮助,请有人帮助我,我是 swift 编程的新手。
我想使用此数据将其填充到 Table 视图内的集合视图中,其中 tableview 向我显示名称,而 table 视图中的集合视图向我显示全部特定名称的插槽,我是在本机反应中完成的,即 javascript 代码,使用 reduce 方法,但无法在此处获取它....
可以使用reduce(into:)
合并成字典,然后使用字典的值
let merged = arrayOfData
.reduce(into: [:]) {
[=10=][.id, default: NewStruct(name: .name, slot: [], id: .id)].slot.append(.slot)
}
.values
我有一个结构和一个数组如下
struct MyStruct : Codable {
var name:String
var slot:String
var id: Int
}
struct NewStruct : Codable {
var name:String
var slot:[String]
var id: Int
}
let data1 = MyStruct(name: "Ankit", slot: "1", id: 11)
let data2 = MyStruct(name: "Deric", slot: "1", id: 12)
let data3 = MyStruct(name: "Ankit", slot: "2", id: 11)
let data4 = MyStruct(name: "Deric", slot: "2", id: 12)
let data5 = MyStruct(name: "RandomName1", slot: "1", id: 13)
let data6 = MyStruct(name: "RandomName2", slot: "1", id: 14)
let data7 = MyStruct(name: "Ankit", slot: "3", id: 11)
var arrayOfData = [data,data2,data3,data4,data5,data6,data7]
我希望合并重复的名称或说 id,并且插槽应具有相应名称或 id 的数组,以供参考 我期待结果
[
NewStruct(name: "Ankit", slot: ["1","2","3"] ,id: 11),
NewStruct(name: "Deric", slot:["1","2"], id: 12),
NewStruct (name: "RandomName1", slot: ["1"], id: 13),
NewStruct(name: "RandomName2", slot: ["1"], id: 14)
]
我需要帮助,请有人帮助我,我是 swift 编程的新手。 我想使用此数据将其填充到 Table 视图内的集合视图中,其中 tableview 向我显示名称,而 table 视图中的集合视图向我显示全部特定名称的插槽,我是在本机反应中完成的,即 javascript 代码,使用 reduce 方法,但无法在此处获取它....
可以使用reduce(into:)
合并成字典,然后使用字典的值
let merged = arrayOfData
.reduce(into: [:]) {
[=10=][.id, default: NewStruct(name: .name, slot: [], id: .id)].slot.append(.slot)
}
.values