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

如何按指定id属性对数组中的对象进行分组(Swift适用)

Swift 按id属性分组对象数组实现

直接使用Swift标准库提供的Dictionary(grouping:by:)初始化方法即可快速实现需求,代码如下:

struct User {
    var id: Int
    var name: String
}

let userArray = [
    User(id: 1, name: "A"),
    User(id: 2, name: "B"),
    User(id: 1, name: "C"),
    User(id: 3, name: "D"),
    User(id: 2, name: "E"),
]

// 核心分组逻辑,得到结构为 [Int: [User]] 的字典,key为id,value为对应id的所有User数组
let groupedResult = Dictionary(grouping: userArray) { $0.id }

// 按需提取对应id的数组
let newArray1 = groupedResult[1] ?? []
let newArray2 = groupedResult[2] ?? []
let newArray3 = groupedResult[3] ?? []

// 如果需要得到按id升序排列的二维数组,可追加排序逻辑
let sortedGroups = groupedResult.values
    .sorted { $0.first?.id ?? .min < $1.first?.id ?? .min }

注:该方法会保留元素在原数组中的相对顺序,符合绝大多数场景的使用要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 15:45:02