2016-07-06 55 views

回答

7
let boolArray = [true, true, false, true] 
let trueIdxs = boolArray.enumerate().flatMap { $1 ? $0 : nil } 
print(trueIdxs) // [0, 1, 3] 

备选地(可能更易读)

let boolArray = [true, true, false, true] 
let trueIdxs = boolArray.enumerate().filter { $1 }.map { $0.0 } 
print(trueIdxs) // [0, 1, 3] 
+0

你是否也请解释你为什么认为它是优雅和最好的方法在你看来是一个很大的帮助。 – Jeet

+0

@JeetendraChoudhary当我们在涉及Swift的问题中提到_“优雅”时,我在许多人中转而谈到了Swift中可用的功能方法。有许多不同的方法可以访问维护某些给定条件的指数。数组的值。我个人使用'enumerate()。flatMap'或'enumerate()。filter {...} .map'方法。 – dfri

+0

谢谢你真的很有帮助,它总是有助于向你这样的老年人学习什么以及他们为什么喜欢某种方法或方法。再一次感谢你。 – Jeet

相关问题