【问题标题】:Swift 3 Remove objects from an array that are not present in another array and maintaining orderSwift 3 从一个数组中删除另一个数组中不存在的对象并保持顺序
【发布时间】:2017-08-04 07:43:59
【问题描述】:

Array1 = [华盛顿、富兰克林、佛罗里达、阿拉斯加、加利福尼亚、乔治亚]

Array2 = [加利福尼亚、华盛顿、乔治亚]

我想得到

Array1 = [华盛顿,加利福尼亚,乔治亚]

【问题讨论】:

    标签: ios arrays swift3


    【解决方案1】:
    var array1 = ["Washington", "Franklin", "Florida", "Alaska", "California", "Georgia"]
    var array2 = ["California", "Washington", "Georgia"]
    
    let filterArray = array1.filter {
        array2.contains($0)
    }
    

    filterArray 是你想要的

    【讨论】:

      【解决方案2】:

      您可以使用过滤器来实现所需的输出

      使用过滤器:

      let array1 = ["Washington", "Franklin", "Florida", "Alaska", "California", "Georgia"]
      let array2 = ["California", "Washington", "Georgia"]
      
      let aryCommonElements = array1.filter { array2.contains($0)}
      

      输出:

      ["Washington", "California", "Georgia"]
      

      希望对你有帮助:)

      【讨论】:

      • 他不能使用套装,因为他要维持秩序
      • 我已经展示了两种方法。一个带套装,另一个带过滤器。过滤器一将起作用。我已经编辑了我的答案,请检查它
      【解决方案3】:

      试试这个

      let filteredArray = array1.filter({Array2.contains($0)})
      

      【讨论】:

        【解决方案4】:

        如果您只想检索常用元素而不是使用:

        在 Swift 3 中

        let Array1 = ["Washington", "Franklin", "Florida", "Alaska", "California", "Georgia"]
        
        let Array2 = ["California", "Washington", "Georgia"]
        
        let common = GetCommonElements(lhs: Array1, rhs: Array2)
        
        print(common)
        
        func GetCommonElements <T, U> (lhs: T, rhs: U) -> [T.Iterator.Element] where T: Sequence, U: Sequence, T.Iterator.Element: Equatable, T.Iterator.Element == U.Iterator.Element {
               var returnArray:[T.Iterator.Element] = []
               for lhsItem in lhs {
                   for rhsItem in rhs {
                       if lhsItem == rhsItem {
                          returnArray.append(lhsItem)
                       }
                   }
               }
               return returnArray
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-11-23
          • 2015-06-19
          • 1970-01-01
          • 1970-01-01
          • 2018-12-21
          • 2021-07-27
          相关资源
          最近更新 更多