该函数计算每个标题的持续时间值之和。这可以按书面方式工作,但我认为可以通过在获取期间计算持续时间之和或更好地使用.map和.reduce并以某种方式删除for循环来改进。
实体“记录”具有属性“ endDate”,“持续时间”和“标题”,标题是一对多映射的。
任何见解都会受到赞赏。
以下是“记录”实体的样本数据集:
对于这些,谓词过滤掉第5个条目,然后函数返回
([[“ reading”,“ memrise”],[60.5,90])
systemctl --host status start
答案 0 :(得分:2)
您可以使用group by和字典结果在查询中完成所有操作。可能更简单的是将用于计算持续时间的n ^^ 2算法分解为:
let result = records.reduce(into: [:]) { acc, record in
acc[record.title, default:0.0] += record.duration
}
这将在n倍左右的时间内建立一个总持续时间的标题字典。
如果您真的想要两个数组,可以添加:
.reduce(into: ([String](), [Double]())) {
$0.0.append($1.key)
$0.1.append($1.value)
}