我正在使用一个填充结构的数组:
struct CartModel: Codable {
var product_id: Int
var line_subtotal: Float
var line_total: Float
var line_tax: Float
var line_subtotal_tax: Float
var key: String
var quantity: Int
}
static var fullCart = [CartModel]()
现在我试图从数组中删除其中一个。
我尝试使用fullCart.index(of:)
,但它给了我以下错误:
参数标签'(of:,_:)'不匹配任何可用的重载
我希望使用fullCart.remove(at:)
,但由于无法找到正确的索引,我不知道如何删除正确的项目。
答案 0 :(得分:1)
您还可以按index(where:)
找到索引,然后从数组中删除项目:
if let index = fullCart.index(where: { $0.product_id == otherCartModel.product_id }) {
fullCart.remove(at: index)
}
或符合Equatable
协议并使用index(of:)
:
struct CartModel: Codable, Equatable {
...
static func == (lhs: Self, rhs: Self) -> Bool {
return lhs.product_id == rhs.product_id
}
}
if let index = fullCart.index(of: otherCartModel) {
fullCart.remove(at: index)
}