Ios 在swift中查找自定义对象数组中最近的值

Ios 在swift中查找自定义对象数组中最近的值,ios,swift,Ios,Swift,嗨,我确实有swift中的自定义对象数组,如下所示 let person1 = Person(“name1”, “5.6”) let person2 = Person(“name2”, “6.6”) let person3 = Person(“name3”, “1.6”) let persons = [person1, person2, person3 ] 下等物品 Class Person { let name: String let pointsEarned: CGFloa

嗨,我确实有swift中的自定义对象数组,如下所示


let person1 = Person(“name1”, “5.6”)

let person2 = Person(“name2”, “6.6”)

let person3 = Person(“name3”, “1.6”)

let persons = [person1, person2, person3 ]
下等物品

Class Person {
  let name: String
  let pointsEarned: CGFloat
}

数组如下所示


let person1 = Person(“name1”, “5.6”)

let person2 = Person(“name2”, “6.6”)

let person3 = Person(“name3”, “1.6”)

let persons = [person1, person2, person3 ]
我想找一个得分接近7.0的人

数组上是否有我可以为此编写的扩展


谢谢你的帮助!谢谢。

根据对象与目标的距离(
7
对对象进行排序,计算为
abs(目标分数)`:

people.sort{abs(7-$0.score)
亚历山大的答案很好,但你只需要
分钟

公共扩展序列{
奉敏(
按getComparable:(元素)抛出->可比
)返回->元素{
试试self.min{
尝试GetCompariable($0)
我还认为
abs
作为一个全局函数看起来有些过时<代码>幅值
是相同的值

persons.min { ($0.pointsEarned - 7).magnitude }
如果需要,可以将参数标签与尾随闭包一起使用:

persons.min(by:){($0.pointserned-7).magnity}

与7的距离仅为
abs(7点搜索)
,因此请按照距离最小的对象对对象进行排序。请提供代码片段?我缺少一些
people.sort{abs(7-$0.score)
谢谢!你使用的是
sort
,然后是
people.sort{insidenclosure}。首先是
people.min(by:{insidenclosure}
Woah,不知道
magnity
。这样更好!