如何在数组中查找重复项?

时间:2015-07-29 15:47:56

标签: ios swift

我有两个包含对象的数组。每个对象都有一个属性“id”。如果id具有相同的值 - 它是重复的。如何通过匹配属性来查找和删除重复项?

现在我使用它,但有时会错过并将重复数据写入DB

 func checkForDupl() {

        for var i = 0; i < JSONStorage.count; i++ {

            for var b = 0; b < CDStorage.count; b++ {

                if JSONStorage[i]!.id == CDStorage[b]!.id {

                    JSONStorage.removeAtIndex(i)
                    if JSONStorage.isEmpty {
                        return
                    }
                }
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

我修改了你的功能,所以它不再错过重复

func checkForDupl() {
    var i = 0
    OUTER_LOOP: while i < JSONStorage.count {
        for j in 0..<CDStorage.count {
            if JSONStorage[i]!.id == CDStorage[j]!.id {
                JSONStorage.removeAtIndex(i)
                continue OUTER_LOOP
            }
        }
        ++i
    }
}

注意:此功能仅移除JSONStorage中存在的CDStorage项目。它不会删除JSONStorage

中的重复内容