我有一个具有多个值(双精度)的数组,其中许多是重复的。我想返回或打印所有唯一值的列表,以及给定值在数组中出现多少次的计数。我对Swift来说还很陌生,我尝试了几种不同的方法,但是我不确定实现此目的的最佳方法。
像这样的内容:[65.0、65.0、65.0、55.5、55.5、30.25、30.25、27.5]
将打印(例如):“ 3 at 65.0、2 at 55.5、2 at 30.25、1 at 27.5”。
我不太关心输出,而不是实现此目的的方法。
谢谢!
您可以枚举数组,并将值添加到字典中。
var array: [CGFloat] = [65.0, 65.0, 65.0, 55.5, 55.5, 30.25, 30.25, 27.5]
var dictionary = [CGFloat: Int]()
for item in array {
dictionary[item] = dictionary[item] ?? 0 + 1
}
print(dictionary)
或者你可以在数组上做foreach:
array.forEach { (item) in
dictionary[item] = dictionary[item] ?? 0 + 1
}
print(dictionary)
或如@rmaddy所说:
var set: NSCountedSet = [65.0, 65.0, 65.0, 55.5, 55.5, 30.25, 30.25, 27.5]
var dictionary = [Float: Int]()
set.forEach { (item) in
dictionary[item as! Float] = set.count(for: item)
}
print(dictionary)
如您所见,它将参数和的和保存在变量中,然后将包含它们的和的eax寄存器保存在变量中,就像函数返回值一样。 这样做是因为函数是用返回值定义的吗?
#1处的console.log生成正确的数据。console.log#2始终生成“a”; 如有任何指示,将不胜感激。
问题内容: 目前,我得到了这样的数组: 经过几步,我的数组如下所示: 我如何计算数组中有多少个a,b,c?我想要一个类似的结果: 等等 问题答案: function count() {
考虑这个代码 我做了一个包装器来延迟的方法调用是否有办法从setTimeout内部的回调中检索值,即从?
如果条件匹配,我想从多数组中获取变量的特定值。 打印阵列时: 给出如下数组: 如果ID与21匹配,我正在尝试获取客户号码
问题内容: 这个问题已经在这里有了答案 : java“ void”和“ non void”构造函数 (4个答案) 10个月前关闭。 问题答案: 您定义的实际上不是构造函数,而是称为的方法。如果您将代码更改为如下所示,则可以正常运行: 如果未明确定义任何特定的构造函数,则编译器会自动创建一个无参数的构造函数。