Решение filter
, показанное в других ответах, является опрятным и подходит для этой цели. Я включу еще несколько альтернатив.
В качестве другой альтернативы, использовать простой for ... in
петлю с where
состоянии держит условное увеличение счетчика:
let myArray = ["a", "b", "c", "a", "b", "a", "b", "c", "a", "b"]
var count = 0
for element in myArray where element == "a" { count += 1 }
print(count) //4
Или, как другой альтернативы, использовать reduce
:
let myArray = ["a", "b", "c", "a", "b", "a", "b", "c", "a", "b"]
let count = myArray.reduce(0) { $0 + ($1 == "a" ? 1 : 0) }
print(count) //4
Я также включу пример использования для NSCounted
, установленный в @user28434's answer
import Foundation
let myArray = ["a", "b", "c", "a", "b", "a", "b", "c", "a", "b"]
let countedSet = NSCountedSet(array: myArray)
let count = countedSet.count(for: "a")
print(count) // 4
// or, simply
let count = NSCountedSet(array: myArray).count(for: "a")
myArray.filter {$ 0 == "a"}. Count chck сделал это сработало для вас –
@ShobhakarTiwari Пожалуйста, сделайте это ответом. – dasdom
@ l.b.dev i добавлен как ответ, сделайте правильный ответ –