You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计CartDataModal数组字典中ItemQuant的键值总和?

如何统计CartDataModal中cartArrayDict数组的ItemQuant总和?

嘿,我来帮你搞定这个统计购物车商品总数量的问题~首先得注意你数据里的小细节:ItemQuant的值既有字符串类型(比如"2")又有整数类型(比如0),计算前得先统一把这些值转成整数,避免类型错误。下面给你两种实用的实现方式:

方法一:用Swift的reduce函数(简洁风格)

reduce是Swift里处理集合累加的常用工具,用闭包就能完成计算:

let totalQuantity = CartDataModal.shared_Inst.cartArrayDict.reduce(0) { sum, item in
    // 处理ItemQuant的不同类型,统一转成Int
    let quantity: Int
    if let strQuant = item["ItemQuant"] as? String {
        quantity = Int(strQuant) ?? 0 // 字符串转Int,转失败就取0兜底
    } else if let intQuant = item["ItemQuant"] as? Int {
        quantity = intQuant
    } else {
        quantity = 0 // 遇到未知类型也取0,避免崩溃
    }
    return sum + quantity
}

// 输出结果
print("所有商品的总数量:\(totalQuantity)")

方法二:循环遍历(直观易懂)

如果觉得闭包有点绕,用普通的for循环也很清晰,适合新手理解:

var total = 0
for cartItem in CartDataModal.shared_Inst.cartArrayDict {
    var itemQuant = 0
    // 逐个处理每个字典里的ItemQuant值
    if let strValue = cartItem["ItemQuant"] as? String {
        itemQuant = Int(strValue) ?? 0
    } else if let intValue = cartItem["ItemQuant"] as? Int {
        itemQuant = intValue
    }
    total += itemQuant
}

print("所有商品的总数量:\(total)")

两种方法都能得到正确的总和(比如你给的示例数据,结果就是2)。如果以后你的接口能把ItemQuant统一成Int类型,代码还能再简化不少~

内容的提问来源于stack exchange,提问作者Gurjit Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:28:56