首页 > 解决方案 > 找到海量中所有真实的索引

问题描述

我有一个布尔数组,有 10 个真假,我想知道所有真假的索引

var trueAndFalses = [false, false, true, false, false, false, true, false, false, false]

我试过firstIndex了,但它只返回 firstIndex (是的有点讽刺)。现在我想知道是否有任何内置函数来查找所有索引true

print(trueAndFalses.firstIndex(of: true))

任何解决方案都会得到应用<3

标签: swift

解决方案


您可以尝试通过访问所有元素并检查其是否为真来查找所有索引,如下所示:

var trueAndFalses = [false, false, true, false, false, false, true, false, false, false]
for var i in (0..<trueAndFalses.count){
    if (trueAndFalses[i] == true)
    {
        print("true fount at index ",i)
    }
}
Output:
true fount at index  2
true fount at index  6

Other way:
let indices = trueAndFalses.enumerated().compactMap { $1 == true ? $0 : nil }
print(indices)

Output:
[2, 6]

推荐阅读