Swift - 从两个数组创建字符串列表

时间:2018-01-17 03:51:17

标签: arrays string list swift4

我需要比较两个包含名称列表和所选索引列表的数组。我需要得到另一个数组,其名称只有给定的索引。怎么能实现这个? 我正在尝试使用foreach,但我获得了双倍的值。

let selectedIndices = [1, 3, 7, 10]
let namesArray = ["aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "jjj", "kkk", "lll", "mmm"] 

finalArray = ["bbb", "ddd", "hhh", "lll"]

2 个答案:

答案 0 :(得分:0)

有一个名为indices的属性,可以访问数组的每个当前索引。然后,您只需检查第二个数组是否包含索引,然后返回其值。 (这两个例子都是默认的,只是偏好问题。)

let filterArray = namesArray.indices.flatMap({ index -> String?  in
    if selectedIndices.contains(index) {
        return namesArray[index]
    }
    return nil 
})

  let filteredArray = namesArray.indices.flatMap({ return  selectedIndices.contains($0) ? namesArray[$0] : nil })

  print(filteredArray) // ["bbb", "ddd", "hhh", "lll"]

答案 1 :(得分:0)

使用map

快速找到了解决方法
finalArray = selectedIndices.map{namesArray[$0]}