计算数组数组中的项目

Count items in array of array

我有一个数组数组存储在核心数据中作为 "Transformable"

例如

colorArray = [[Red, Blue, Green], [Red], [Blue, Green], [Green], [Blue], [Blue, Green, Red]]

我想要一个函数来计算每种颜色在核心数据属性 (colorArray) 中出现的总次数。因此,对于上述数据,该函数将打印:

Red = 3
Blue = 4
Green = 4

最好的方法是什么?

使用 NSCountedSet 的简单解决方案。

  • 展平数组。
  • 从数组创建计数集。
  • 枚举集合。

示例使用字符串

let colorArray = [["Red", "Blue", "Green"], ["Red"], ["Blue", "Green"], ["Green"], ["Blue"], ["Blue", "Green", "Red"]]

let flattened = colorArray.reduce([], +)
let set = NSCountedSet(array: flattened)
for element in set {
    print("\(element) = \(set.count(for: element))")
}