计算数组数组中的项目

Posted

技术标签:

【中文标题】计算数组数组中的项目【英文标题】:Count items in array of array 【发布时间】:2018-01-30 15:54:53 【问题描述】:

我有一个数组作为“可转换”存储在核心数据中

例如

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

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

Red = 3
Blue = 4
Green = 4

最好的方法是什么?

【问题讨论】:

【参考方案1】:

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))")

【讨论】:

谢谢。如果我将代码中的数组设置为:[["Red", "Blue", "Green"], ["Red"], ["Blue", "Green"], ["Green"] , ["Blue"], ["Blue", "Green", "Red"]] 但是,我无法从核心数据中检索到我想要的实际数组。你知道怎么做吗?我将它保存在一个名为“项目”的实体中。属性名称为colorArray,类型为可变形 如果它是可变形的,为什么你不能检索它? 我使用了String,因为我仍然不知道颜色名称代表什么。

以上是关于计算数组数组中的项目的主要内容,如果未能解决你的问题,请参考以下文章

获取数组中的项目总数

PHP - 生成数组中的所有项目组合

在子集合中的项目内容上创建计算属性

我想通过将输入数组的所有项目相乘来计算,但除了第 i 个项目

Redux Dispatch - 从数组/不正确的数组长度输出中删除项目

Python 中的数组