【问题标题】:Swift 4 map an array to a dictionary by foreign keySwift 4 通过外键将数组映射到字典
【发布时间】:2018-07-18 12:03:35
【问题描述】:

我有一个对象数组(外键为classId):

let studentArray = [Student(id:3, name:"John", classId:1), Student(id:4, name:"Jane", classId:1), Student(id:5, name:"Bill", classId:2)]

我正在尝试将其映射到带有 classId 键的字典,如下所示:

[1:[Student], 2:[Student]]

有没有使用字典的好方法? 我的解决方案是使用 for 循环遍历数组并将每个对象添加到字典中,但这似乎效率低下。

【问题讨论】:

    标签: ios arrays swift dictionary mapping


    【解决方案1】:

    Swift 4 允许您实例化按键分组的字典。这是more detail 关于它。这是一个例子:

    let studentArray = [Student(id:3, name:"John", classId:1), Student(id:4, name:"Jane", classId:1), Student(id:5, name:"Bill", classId:2)]
    
    
    let dictByKeyVersionOne = Dictionary(grouping: studentArray, by: {student in student.classId})
    

    或者,您可以使用$0.classId 创建字典,如下所示:

    let dictByKeyVersionTwo = Dictionary(grouping: studentArray, by: {$0.classId})
    

    【讨论】:

    • @LeoDabus 我也喜欢这样,但我怀疑他有点新,所以我做了一些更具可读性的东西。 :)
    • @Adrian 忘了提Dictionary(grouping: studentArray) {$0.classId}
    • @LeoDabus 谢谢。
    猜你喜欢
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    • 1970-01-01
    • 2018-08-26
    • 2015-10-17
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多