arrays - 按某些属性对数组的元素进行分组

标签 arrays swift data-structures grouping

我有一个属性为 date 的对象数组。

我想要的是创建数组数组,其中每个数组将包含具有相同日期的对象。

我明白,我需要像 .filter 这样的东西来过滤对象,然后 .map 把所有东西添加到数组中。

但是如何告诉 .map 我想为每个组从过滤的对象中分离数组,并且这个数组必须添加到“全局”数组以及如何告诉 .filter 我想要具有相同日期的对象?

最佳答案

可能晚了,但新的 Xcode 9 sdk 字典有新的初始化方法

init<S>(grouping values: S, by keyForValue: (S.Element) throws -> Key) rethrows where Value == [S.Element], S : Sequence

Documentation has simple example what this method does. 我只是在下面发布这个例子:

let students = ["Kofi", "Abena", "Efua", "Kweku", "Akosua"]
let studentsByLetter = Dictionary(grouping: students, by: { $0.first! })

结果将是:

["E": ["Efua"], "K": ["Kofi", "Kweku"], "A": ["Abena", "Akosua"]]

关于arrays - 按某些属性对数组的元素进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41564580/

相关文章:

arrays - 搜索数组中连续元素的索引

java - boolean 引用

ios - 从 firebase 检索所有通知

ios - 如何在透明 UINavigationBar 和带背景颜色的 UINavigationBar 之间切换

ios - 在 UIView 中需要一个用于 SnapKit 约束的完成 block

c - 执行插入排序时保存指向双向链表中最后一个节点的指针

c++:定义可以用作可增长数组的函数

javascript - 我无法对数组中的数字进行排序(尝试了此处编写的所有内容,但仍然不起作用)

database - 键值数据库如何工作?

java - 为什么我的 "private"关键字在 var "first"上不起作用?