微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

除了循环和追加之外,是否有更快/更简洁的方法从阵列中获取多个索引?也许是以下的单线功能变体?

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","Bill"]

解决方法

你可以这样试试.

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

要防止indexOutOfBounds崩溃,您可以使用flatMap.

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐