基于布尔值比较两个数组和匹配元素

时间:2016-11-09 15:25:34

标签: ios swift swift3

假设我有两个数组

let array1 = [1,2,3]
let array2 = [false, true, false]

我想从array1返回在某个索引处匹配true boolean的值列表。在这个简单的例子中,这将是[2]

如何使用功能方法实现它?

1 个答案:

答案 0 :(得分:6)

"邮编及#34;数组,然后将每对映射到第一个元素或 nil,取决于第二个元素。 flatMap()仅返回 非零结果:

let array1 = [1,2,3]
let array2 = [false, true, false]

let result = zip(array1, array2).flatMap { $1 ? $0 : nil }
print(result) // [2]