【发布时间】:2018-09-18 14:22:39
【问题描述】:
当我引用数组中的某个项目时,我想找到另一个最接近它且符合特定条件的项目。
例如,我有这个数组:
struct Person {
var name = ""
var age = ""
var gender = ""
var address = ""
}
let array = [Person(name:"ahmad",age:"22",gender:"male",address:"USA"),
Person(name:"ahmad",age:"23",gender:"male",address:"KSA")]
现在假设我有一个对象:
let object = Person(name:"ahmad",age:"25",gender:"male",address:"USA")
基于此,我需要根据其所有属性的值在array 上找到离它最近的人。
例如,根据我上面的代码,array 中与object 最接近的对象是第一个,因为它们具有相同的name、gender 和address(3 个匹配的属性),而不是第二个,因为只有 2 个匹配的属性。
【问题讨论】:
-
“最近的项目”是一个很模糊的东西。你可能不得不自己做。只需在您的数组上创建一个循环,检查项目的每个属性,每次您检查的属性符合您的条件时递增一个计数器。然后,在每个计数器上再次循环以找到最大计数器。但同样,“最接近”是模糊的,所以你必须更具体地处理字符串和类似的东西..
-
@MartinR 我编辑了我的问题。