gpt4 book ai didi

ios - 如何计算对象数组中的键值总数

转载 作者:可可西里 更新时间:2023-11-01 00:39:05 24 4
gpt4 key购买 nike

我得到了 CartDataModal 结构中的字典数组

class CartDataModal: NSObject {
static let shared_Inst = CartDataModal()
var cartArrayDict = [[String:Any]]()
}

接收到的数据格式如下

restmenu是插入后

[
["ItemName": Cheese Burger, "ItemPrice": 50, "ItemQuant": "2"],
["ItemName": Veg Burger, "ItemPrice": 30, "ItemQuant": 0],
["ItemName": Chicken Burger, "ItemPrice": 50, "ItemQuant": 0],
["ItemName": Veg & Crisp Burger, "ItemPrice": 45, "ItemQuant": 0],
["ItemName": Maharaja Burger, "ItemPrice": 60, "ItemQuant": 0],
["ItemName": Coke, "ItemPrice": 50, "ItemQuant": 0],
["ItemName": Pepsi, "ItemPrice": 50, "ItemQuant": 0]
]

我如何计算“ItemQuant”的键值总数?

最佳答案

这是一种计算 cartArrayDict 中项目数量的方法,同时确保仅包含 "ItemName" 的那些键。它使用具有所需字典键的数组的 reduce() 函数,在键不存在的情况下使用 nil 合并运算符。

如何(按键)获取字典数组中的项目数

let count: Int = cartArrayDict.reduce(0) {
$0 + ($1["ItemName"] != nil ? 1 : 0)
}
print(count) // Or do whatever you want with the value

如何获取数量总和

这里是如何获得数量的总和,如评论中所问。

let totalQuantity: Int = cartArrayDict.reduce(0) {
$0 + ($1["ItemQuant"] as? Int ?? 0)
}
print(totalQuantity) // Or do whatever you want with the value

如何获取一种商品的总价

我已将其作为函数呈现。

func getTotalPrice(for name: String) -> Int {
let totalPrice: Int = cartArrayDict.reduce(0) {
$0 + ($1["ItemName"] == name ? $1["ItemPrice"] as? Int : 0)
}
return totalPrice
}

let totalPriceForCoke = getTotalPrice(for: "Coke")

请注意,这假设键 "ItemName" 的值是 String 类型。目前您的值不是字符串,我不确定为什么会这样。我建议这样更改它:"Coke" 而不是 Coke

关于ios - 如何计算对象数组中的键值总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50469627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com