arrays - 如何快速从数组中删除特定项目?

标签 arrays swift xcode

我正在使用一个充满结构的数组:

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:),但出现以下错误:

Argument labels '(of:, _:)' do not match any available overloads

我希望使用 fullCart.remove(at:),但由于无法找到正确的索引,我不确定如何删除正确的项目。

最佳答案

您还可以通过 index(where:) 查找索引然后从数组中删除项目:

if let index = fullCart.index(where: { $0.product_id == otherCartModel.product_id }) {
    fullCart.remove(at: index)
}

或符合Equatable协议(protocol)和使用 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)
}

关于arrays - 如何快速从数组中删除特定项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49538541/

相关文章:

c - 如何在数组中使用 C 字符串?

C - 将数组中的 char 字符串排序为等于 char 用户输入

ios - 从firebase获取名称显示

swift - 随机化 spritekit 中的不同敌人向玩家移动

xcode - OpenCV-文件是为不受支持的文件格式构建的,该文件格式不是要链接的体系结构(i386)

javascript - 搜索输入字段以搜索 JavaScript 数组 - 如何验证空输入框

ios - UITabBarItem颜色只能改变一次?

ios - 如何检测用户是否点击警报打开应用程序?

iOS psd 到 xcode

ios - Xcode 9 _OBJC_CLASS_$_FBSDKApplicationDelegate