我有一个数组

allIDs = ["1", "2", "2", "3", "4", "4"]


我通过使用使内容独特

sortedIDs = Array(Set(allIDs))


现在,我想删除allIDs数组中的唯一字符串,以便保留所有重复项。

for item in sortedIDs {
while allIDs.contains(item) {
    if let itemToRemoveIndex = allIDs.index(of: item) {
        allIDs.remove(at: itemToRemoveIndex)
        print(allIDs)
    }
}


}

这给了我一个空的allIDs数组。我很困惑应该循环四次的for循环是循环六次并删除所有项目。
谢谢。

最佳答案

我假设您想要的结果是["2", "4"];从原始数组中删除的重复数组,以获取sortedIDs数组。

您的问题是while循环,直到从allIDs删除项目的所有副本为止。如果仅对sortedIDs中的每个项目执行1个删除操作,则将获得所需的结果:

for item in sortedIDs {
    if let itemToRemoveIndex = allIDs.index(of: item) {
        allIDs.remove(at: itemToRemoveIndex)
        print(allIDs)
    }
}

关于swift - 循环数组,删除唯一值,仅保留重复项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42470734/

10-13 07:29