gpt4 book ai didi

swift - 查找数组中的两个字符串是否相同?

转载 作者:行者123 更新时间:2023-11-28 12:22:35 26 4
gpt4 key购买 nike

我有一个对象数组。每个对象都有一个名为 title 的属性,我想知道两个对象是否具有相同的标题。如何快速做到这一点?

最佳答案

如果您想要与数组中另一个对象具有相同标题的对象列表,您可以这样做(假设标题是一个字符串):

var titles     = Set<String>()
let duplicates = array.filter{ !titles.insert($0.title).inserted }

// note: this only lists the second and subsequent element with a given title

如果你需要他们的索引,你可以这样做:

var titles     = Set<String>()
let dupIndexes = array.enumerated()
.filter{ !titles.insert($1.title).inserted }
.map{$0.0}

如果您想要所有标题重复的对象(包括第一个),您可以像这样改进第一种方法:

var titles     = Set<String>()
let dupTitles = Set(array.map{$0.title}.filter{!titles.insert($0).inserted})
let dupObjects = array.filter{dupTitles.contains($0.title)}

[编辑] Swift 4 有一个新的 Dictionary 初始值设定项,可用于此:

let dupObjects = Dictionary(grouping:array){$0.title}
.filter{$0.value.count > 1}
.flatMap{$0.value}

在所有情况下,如果重复项、dupIndexes 或 dupObjects 的 .count > 0,那么数组中至少有一个重复项

关于swift - 查找数组中的两个字符串是否相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44365204/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com