如何根据其他数组删除值数组

时间:2017-07-12 05:02:26

标签: arrays swift

如何根据其他数组删除值数组。

示例: -

Type(Int)

  

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

     

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

我想要下一个结果: -

  

结果= [3,8]

4 个答案:

答案 0 :(得分:0)

用户设置简单结果

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}

答案 1 :(得分:0)

您可以将它们转换为集合。

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说。

答案 2 :(得分:0)

使用以下工作代码 -

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)
     }
}

答案 3 :(得分:0)

您可以使用以下选项。

//选项1 - 使用设置

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}