在Swift中从数组中获取多个元素的更快方法?

MH175

除了循环和附加之外,是否有更快/更简洁的方法从数组中获取多个索引?可能是以下内容的一线功能变体?

let names: [String] = ["John", "Mary", "Hugo", "Bill", "Andrea"]
let indexesToGet = [0, 1, 3]
var result: [String] = []
for i in 0..<indexesToGet.count {
    result.append(names[indexesToGet[i]])
}
return result
//returns ["John", "Mary", "Bill"]
尼拉夫D

您可以这样尝试。

let result = indexesToGet.map { names[$0] }

为了防止indexOutOfBounds崩溃,您可以使用flatMap

let result = indexesToGet.flatMap { (names.count > $0) ? names[$0] : nil}

从Swift 4.1开始,请使用compactMap代替flatMap

let result = indexesToGet.compactMap { (names.count > $0) ? names[$0] : nil}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章