gpt4 book ai didi

ios - Swift 上数组的 GroupBy 扩展用法

转载 作者:行者123 更新时间:2023-11-28 15:18:39 28 4
gpt4 key购买 nike

我有一个由字典组成的数组。

我需要在字典中按 Key 对它们进行分组。

我试过这条线,但不知道在处理程序中写什么。我在努力

globalArray.groupBy(处理程序:{$0["Name"]})

报错;

无法转换“字符串”类型的值?关闭结果类型“_”

我的分机分组如下;

extension Sequence {
// Using a `typealias` because it's shorter to write `E`
// Think of it as a shortcut
typealias E = Iterator.Element

// Declaring a `K` generic that we'll use as the type of the key
// for the resulting dictionary. The only restriction is having
// it conforming to the `Hashable` protocol
func groupBy<K: Hashable>(handler: (E) -> K) -> [K: [E]] {
// Creating the resulting dictionary
var grouped = [K: [E]]()

// Iterating over our elements
self.forEach { item in
// Retrieving the key based on the current item
let key = handler(item)

if grouped[key] == nil {
grouped[key] = []
}
grouped[key]?.append(item)
}

return grouped
}

你能告诉我正确的用法吗?

BR,

埃德姆

最佳答案

我正在使用这个扩展 来对数组进行分组,它运行得非常好

extension Array {
func grouped<T>(by criteria: (Element) -> T) -> [T: [Element]] {
var groups = [T: [Element]]()
for element in self {
let key = criteria(element)
if groups.keys.contains(key) == false {
groups[key] = [Element]()
}
groups[key]?.append(element)
}
return groups
}
}

我是怎么用的

array.grouped { (object:MyObjectClass) -> String in
return object.location?.name ?? "EmptyKey"
//Here you need to return your key
}

希望对你有帮助

关于ios - Swift 上数组的 GroupBy 扩展用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46401293/

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