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

Swift/iOS开发:如何对汽配字符串数组按品类汇总各配件价格总和

Swift 汽车配件价格分组求和实现方案

实现逻辑分为三步:拆分原始字符串、分组累计价格、转换为目标格式字符串数组,完整可运行代码如下:

let parts = [
    "Wheel = 230$",
    "Door = 200$",
    "Wheel = 300$",
    "Seat = 150$",
    "Seat = 150$",
    "Rugs = 100$"
]

var priceCache = [String: Int]()
// 如需保持配件首次出现的顺序,新增顺序数组记录
var partOrder = [String]()

for item in parts {
    // 拆分配件名和价格片段
    let itemSegments = item.components(separatedBy: " = ")
    // 容错处理:格式不符合的元素直接跳过
    guard itemSegments.count == 2,
          let priceText = itemSegments.last?.replacingOccurrences(of: "$", with: ""),
          let price = Int(priceText) else {
        continue
    }
    let partName = itemSegments[0]
    // 如需统一配件名大小写(匹配示例中的小写wheel),可修改为 let partName = itemSegments[0].lowercased()
    if priceCache[partName] == nil {
        partOrder.append(partName)
    }
    priceCache[partName, default: 0] += price
}

// 生成最终结果数组
let result = partOrder.map { "\($0) \(priceCache[$0]!)$" }

// 输出验证:["Wheel 530$", "Door 200$", "Seat 300$", "Rugs 100$"]
print(result)

如果不需要保持结果顺序,直接遍历字典生成结果即可,省去维护partOrder的步骤。

内容的提问来源于stack exchange,提问作者Asbjorn Rasen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 18:30:02