gpt4 book ai didi

ios - 字典(将 : people, 分组为:在 swift 4 中有 2 个项目

转载 作者:行者123 更新时间:2023-11-29 11:34:20 25 4
gpt4 key购买 nike

我有这样的数据

 "geoData": [
{

"lat": 50.26877,
"long": 19.034,
"msg": "TEST 3",
"geoRadius": 30.48,
"pri" : 1
},
{
"lat": 50.26877,
"long": 19.034,
"msg": "TEST 2",
"geoRadius": 30.48,
"pri" : 2
},
{
"lat": 50.26877,
"long": 10.034,
"msg": "TEST 1",
"geoRadius": 30.48,
"pri" : 1
}
{
"lat": 50.26877,
"long": 10.034,
"msg": "TEST 4",
"geoRadius": 30.48,
"pri" : 2
}
]

现在我想要一个按纬度和经度分组并按 pri 排序的结果字典

我试过这样的

        let result = Dictionary(grouping: geoNotifications,
by: { (geoNotification)->Bool in
return geoNotification.latitude && geoNotification.longitude })

但是没用有人可以分享相同的逻辑吗?

最佳答案

在您提供的代码中,我假设 geoNotifications 是一个 array of struct/objects 类似于下面的代码:

struct GeoNotification
{
var latitude: Double
var longitude: Double
var msg: String
var geoRadius: String
var pri: Int

init(dict: [String:Any])
{
self.latitude = dict["lat"] as! Double
self.longitude = dict["long"] as! Double
self.geoRadius = dict["geoRadius"] as! String
self.msg = dict["msg"] as! String
self.pri = dict["pri"] as! Int
}
}

有了一组 GeoNotification 对象,我们可以满足您的两个要求:

<强>1。使用经度

分组
var dict = Dictionary(grouping: geoNotifications) { $0.longitude }

结果:

["10.034000000000001": [geoNotification1, geoNotification2] , "19.034": [geoNotification3, geoNotification4]]

<强>2。使用 pri

排序
for (key, value) in dict
{
dict[key] = value.sorted(by: { $0.pri < $1.pri })
}

在上面的代码中,我从我们之前得到的 dict 中挑选了每个键值对,并根据值(它是一个 GeoNotification 对象的数组)对值进行了排序到 pri

关于ios - 字典(将 : people, 分组为:在 swift 4 中有 2 个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50695229/

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