gpt4 book ai didi

ios - 给定一个索引数组,我如何快速过滤一个数组?

转载 作者:搜寻专家 更新时间:2023-10-31 22:13:28 26 4
gpt4 key购买 nike

给定一个索引数组,我想得到 myArray 的一个子数组,其中的项目位于这些索引处。我目前正在迭代索引数组以创建一个子数组,但我想知道这是否可以通过使用 .filter 函数来实现。

var indexes = [3,4,9,11]
myArray.filter(...)

最佳答案

假设

  • 给定的索引按递增顺序排列,并且
  • 所有索引对于数组都是有效的(即小于元素的数量),

那么一个简单的 map 操作就可以了:

let indexes = [2, 4, 7]
let myArray = ["a", "b", "c", "d", "e", "f", "g", "h"]

let filtered = indexes.map { myArray[$0] }
print(filtered) //["c", "e", "h"]

备注:在早期的 Swift 版本中,有一个 PermutationGenerator正是为了这个目的:

let filtered = Array(PermutationGenerator(elements: myArray, indices: indexes))
print(filtered) //["c", "e", "h"]

但是,这在 Swift 2.2 中已被弃用,将被删除在 Swift 3 中。我还没有看到 Swift 3 的替代品。

关于ios - 给定一个索引数组,我如何快速过滤一个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38181440/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com