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

Swift数组按前缀分割为子数组的技术求助

实现Swift数组按前缀分组

需求说明

将给定Swift数组的元素按斜杠/分割后的前缀作为分组键,后缀作为对应组的元素,最终生成一个[String: [String]]类型的字典。

实现代码

let a = ["origin/a", "origin/b", "origin/c", "remo/a", "remo/d", "remo/c", "next/g"]

let groupedDict = a.reduce(into: [String: [String]]()) { result, element in
    let components = element.components(separatedBy: "/")
    guard components.count == 2 else { return }
    let key = components[0]
    let value = components[1]
    result[key, default: []].append(value)
}

// 打印结果
print(groupedDict)
// 输出:["origin": ["a", "b", "c"], "remo": ["a", "d", "c"], "next": ["g"]]

代码说明

  • 使用reduce(into:)遍历数组,初始化空字典作为累加容器
  • 对每个元素用components(separatedBy: "/")拆分,仅处理拆分后恰好有两部分的元素
  • 通过result[key, default: []]获取对应键的数组(不存在则自动创建空数组),将后缀元素追加进去
  • 最终得到的groupedDict完全匹配需求中的分组结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 18:48:24