除了循环和追加之外,是否有更快/更简洁的方法从阵列中获取多个索引?也许是以下的单线功能变体?
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] 举报,一经查实,本站将立刻删除。