我有两个包含对象的数组。每个对象都有一个属性“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
}
}
}
}
}
答案 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