【问题标题】:Swift - Create list of strings from two arraySwift - 从两个数组创建字符串列表
【发布时间】:2018-01-17 03:51:16
【问题描述】:

我需要比较两个包含名称列表和选定索引列表的数组。因此,我需要得到另一个数组,其中只包含给定索引的名称。怎么可能做到这一点? 我正在尝试使用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"]

【问题讨论】:

    标签: arrays string list swift4


    【解决方案1】:

    找到了一种使用map 的快速方法:

    finalArray = selectedIndices.map{namesArray[$0]}
    

    【讨论】:

    • finalArray 不会编译。
    【解决方案2】:

    有一个名为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"]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-13
      • 1970-01-01
      • 2019-07-07
      • 1970-01-01
      • 1970-01-01
      • 2011-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多