Bab*_*bar 1 arrays dictionary swift
Swift 提供了一种基于单个属性将数组转换为字典的方法。是否可以根据多个属性将数组分组为字典。类似于以下内容
例如,我们有包含姓名、年龄和性别的对象数组
Person{
let name: String
let age: Int
let gender: String
}
Run Code Online (Sandbox Code Playgroud)
我们有包含人员的数组
let array:[Person] = [Person(name: "Alex", age: 25, gender: "Male"), Person(name: "Sara", age: 25, gender: "Female")]
Run Code Online (Sandbox Code Playgroud)
如何按姓名和年龄等多个属性进行分组?
Dictionary(grouping: array, by: { $0.name && $0.age })
Run Code Online (Sandbox Code Playgroud)
您可以按任何可以成为键的东西进行分组,换句话说,按任何可以成为键的东西进行分组Hashable。
如果需要组合多个属性,请定义一个新类型:
struct GroupingKey: Hashable {
let name: String
let age: Int
}
Dictionary(grouping: array, by: { GroupingKey(name: $0.name, age: $0.age) })
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
719 次 |
| 最近记录: |