我有一个数组
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/