【问题标题】:How can I remove values array based on array other [duplicate]如何根据其他数组删除值数组[重复]
【发布时间】:2017-12-16 08:34:22
【问题描述】:

如何根据数组 other 删除 values 数组。

示例:-

类型 (Int)

var arrayOne = [1,2,3,4,5,6,7,8]

var arrayTwo = [1,2,4,5,6,7]


我想要下一个结果:-

结果 = [3,8]

【问题讨论】:

标签: arrays swift


【解决方案1】:

简单结果的用户集

var arrayOne = [1,2,3,4,5,6,7,8]

var arrayTwo = [1,2,4,5,6,7]

let set1:Set<Int> = Set(arrayOne)
let set2:Set<Int> = Set(arrayTwo)

let set3 =  set1.symmetricDifference(set2)

输出:

{3, 8}

【讨论】:

    【解决方案2】:

    您可以通过将它们转换为 Set 来做到这一点。

    var arrayOne = [1,2,3,4,5,6,7,8]
    var arrayTwo = [1,2,4,5,6,7]
    
    let set1:Set<String> = Set(arrayOne)
    let set2:Set<String> = Set(arrayTwo)
    

    使用 ExclusiveOr 来执行此操作。

        //Swift 2.0
        set1.exclusiveOr(array2) // result = {3,8}
    
       //Swift 3.0
       set1.symmetricDifference(set2) // result = {3,8}
    

    此链接可能对您有用:Set operations (union, intersection) on Swift array? 也可能像@user3589771 所说的那样复制。

    【讨论】:

      【解决方案3】:

      您可以使用以下选项。

      // 选项 1 - 使用 Set 的

      let arrayOne : Set = [1,2,3,4,5,6,7,8]
      
      let arrayTwo : Set = [1,2,4,5,6,7]
      
      var result = arrayOne.symmetricDifference(arrayTwo)
      
      print(result) // {3,8}
      

      // 选项 2 - 使用数组

      var result1 = [Int]()
      
      for value in arrayOne
      {
          if !arrayTwo.contains(value)
          {
              result1.append(value)
              }
          }
      
      print(result1) // {3,8}
      

      【讨论】:

        【解决方案4】:

        使用以下工作代码 -

        let arrayOne = [1,2,3,4,5,6,7,8]
        let arrayTwo = [1,2,4,5,6,7]
        var result = [Int]()
        
        for value in arrayOne
        {
             if !arrayTwo.contains(value)
             {
                 result.append(value)
             }
        }
        

        【讨论】:

          猜你喜欢
          • 2014-07-19
          • 1970-01-01
          • 2020-11-06
          • 2019-09-17
          • 2021-06-16
          • 1970-01-01
          • 2017-08-06
          • 1970-01-01
          • 2016-11-08
          相关资源
          最近更新 更多