在swift中比较两个不同长度的数组

时间:2015-04-04 14:16:08

标签: arrays swift

我想将两个数组相互比较,并将不在另一个数组中的值附加到新数组中。现在的问题是,所有与另一个数组不相等的值都已经被追加,但我只希望附加另一个数组中的新值。

我希望问题很清楚。对不起,如果这是一个非常模糊的问题。哈哈,我试着说清楚。 代码和输出打印在下面:

// Iterate through all possible values
for i in 0...messages.count-1{
    var match = false

    for r in 0...self.messages.count-1{
       println("NIEUWE" + messages[i].getID() + "OUDE" + self.messages[r].getID())


        if(messages[i].getID().toInt() == self.messages[r].getID().toInt()){

            var match = true

            println(match)
            break
        }


    }

    if (!match) {
        newArray.append(messages[i])
        println(newArray)
    }
}

输出:

NIEUWE170OUDE170
NIEUWE170OUDE171
true
[PostDuif.Message]
NIEUWE171OUDE170
true
[PostDuif.Message, PostDuif.Message]
NIEUWE172OUDE170
true

1 个答案:

答案 0 :(得分:2)

这个"我想比较两个数组,并将不在另一个数组中的值附加到一个新数组"只是设置差异'

var s1 = Set(["a", "b", "c"])   // this to be similar to your need
var s2 = Set(["b", "c", "d"])    
var s3 = s2.subtract (s1)

因此:

  9> var s3 = s2.subtract(s1)
s3: Set<String> = {
  [0] = "d"
}

请注意,subtract类型的方法为intersectunioninPlace Set选项。 Swift 1.2的新功能。