【发布时间】:2019-12-17 16:27:57
【问题描述】:
我有四个数组列表:
var products: [Product] = []
var addressInfo: [AddressInfo] = []
var favorites: [Favorite] = []
var amounts: [Amount] = []
我想把它们合二为一,所以我只有一个变量:
var combined = [Product/AddressInfo/Favorite/Amount]()
我将如何将它们合并为一个数组 var cobmbined = [Combined]() ?
这是我的结构的两个示例:
struct Amount {
var amountsDeliveryCharge: Double
var amountsDriverTip: Double
init(
amountsDeliveryCharge: Double,
amountsDriverTip: Double
){
self.amountsDeliveryCharge = amountsDeliveryCharge
self.amountsDriverTip = amountsDriverTip
}
init(data: [String: Any]){
amountsDeliveryCharge = data[DatabaseRef.deliveryCharge] as? Double ?? 0.0
amountsDriverTip = data[DatabaseRef.driverTip] as? Double ?? 0.0
}
static func modelToData(amount: Amount) -> [String: Any] {
let data : [String: Any] = [
DatabaseRef.deliveryCharge : amount.amountsDeliveryCharge,
DatabaseRef.driverTip : amount.amountsDriverTip
]
return data
}
}
这是另一个结构:
struct Product {
var price: Double
var priceUnit: String
init(
price: Double,
priceUnit: String
){
self.price = price
self.priceUnit = priceUnit
}
init(data: [String: Any]){
price = data[DatabaseRef.price] as? Double ?? 0.0
priceUnit = data[DatabaseRef.priceUnit] as? String ?? ""
}
static func modelToData(product: Product) -> [String: Any] {
let data : [String: Any] = [
DatabaseRef.price : product.price,
DatabaseRef.priceUnit : product.priceUnit
]
return data
}
}
另外两个结构在结构上也很相似。
【问题讨论】:
-
您是否已经有一个自定义结构,该结构具有属性 Product、一个 AddressInfo、另一个 Favorite 和另一个 Amount? (合并?)另外,我想您想将 products[i] 与 addressInfo[i] favorites[i] & amount[i] 合并?
-
@Larme 我刚刚编辑了我的帖子,其中包括两个结构作为示例。我只需要在最后将它们组合成一个。我没有
Combined的结构。 -
var combined = [Product/AddressInfo/Favorite/Amount]()不清楚。能举个例子吗? -
结构的实际内容应该是无关紧要的——它们有自己的类型。你的意思是你想要一个可以包含异构元素的数组,例如。 [product1,product2,amount5,favourite3,amount1] 或者您是否要将它们分组为自己的实体,例如。 [combined1,combined2,combined3]其中每个Combined包含所有类型?
标签: arrays swift iphone variables merge