【问题标题】:Swift - Sort array element by rangeSwift - 按范围对数组元素进行排序
【发布时间】:2019-02-07 20:43:31
【问题描述】:

我目前正在使用“图表”窗格。

我的应用显示运动员成绩条形图,其中:

  • X 轴:代表次数/时间/轮次/重量
  • Y 轴:运动员人数

我想收集不同组的代表数量。

类似于:10

类似的东西:

最好的方法是什么?我想一些方法:

  • 将代表次数四舍五入,例如将 19 和 15 转换为 10 和 10(对于 10
  • 创建一个包含字典的新数组,类似于:

    [[“10-20”:15、17、19]、[“20-30”:21、22、22、24]等]

但我不知道如何实现...

最好的方法是什么?

【问题讨论】:

标签: ios arrays swift sorting swift3


【解决方案1】:

你可以使用Dictionaryinit(grouping:by:)初始化器来创建这样一个字典:

let array = [15,17,19,22,24,24,27]
let dict = Dictionary(grouping: array, by: { $0 / 10 })

// dict is [2: [22, 24, 24, 27], 1: [15, 17, 19]]

如果我对您的理解正确,您可能有一堆Athletes,它们有一个reps 属性。您可以改为按$0.reps / 10 分组:

Dictionary(grouping: athletes, by: { $0.reps / 10 })

然后将键和值映射到这个:

.map { ("\($0.key * 10) - \(($0.key + 1) * 10)", $0.value.count) }

// now you have this:
// [("20 - 30", 4), ("10 - 20", 3)]

【讨论】:

  • 太棒了!我不知道这个功能!非常感谢,太完美了!
猜你喜欢
  • 2017-10-30
  • 1970-01-01
  • 1970-01-01
  • 2016-02-01
  • 1970-01-01
  • 2018-02-04
  • 1970-01-01
  • 2014-10-19
  • 2020-10-19
相关资源
最近更新 更多