我有两个数组,我需要从其中输出2D数组:
let id = productArrays.map { $0.productID }=["2", "2"]
let quant = productArrays.map { $0.quantity }=["3", "4"]
var array = [[Int]]()
for i in 0..<productArrays.count {
var subArray = quant
for j in 0..<productArrays.count {
subArray[i]![j] = quant
}
array.append(subArray)
}
}
我需要这样输出:
[[3, 2],[4, 2]]
答案 0 :(得分:0)
这是合并和转换数组元素的简单解决方案
let id = ["2", "2"]
let quant = ["3", "4"]
var array = [[Int]]()
let end = min(id.count, quant.count)
for i in 0..<end {
if let id = Int(id[i]), let quant = Int(quant[i]) {
array.append([id, quant])
}
}
由于问题在数组中包含map
,因此我想包括一个替代解决方案,以防原始数据包含在某个结构中(在数组中),因为这样的解决方案非常简单
struct Item { //My made up struct
let id: String
let quant: String
}
let productArray = [Item(id: "2", quant: "3"), Item(id: "2", quant: "4")]
let array2 = productArray.compactMap { item -> [Int]? in
if let id = Int(item.id), let quant = Int(item.quant) {
return [id, quant]
}
return nil
}
答案 1 :(得分:0)
let id = ["2", "2"]
let quant = ["3", "4"]
let result = Array(zip(id, quant))