gpt4 book ai didi

ios - 如何获取属性值符合特定条件的数组中对象的索引?

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

也许这个问题之前已经有人回答过,或者答案很明显,但我已经搜索了好几天都找不到这个问题的答案。如果我对此束手无策,我将不胜感激。

class marker {
var latitude = Double()
var longitude = Double()
var coordinate = CLLocationCoordinate2DMake(latitude, longitude)
}

let someCoordinate = CLLocationCoordinate2DMake(someLatitude, someLongitude)

现在假设我有一个名为“markers”的数组,包含 10 个所有属性都已初始化的标记对象。如何找到坐标值与 someCoordinate 值匹配的标记项的索引?

编辑

在尝试 iosdk 的建议时下面,我发现我正在尝试比较 marker.coordinate 属性,它是一个 CLLocationCoordinate2D。那没有像我预期的那样工作。相反,我尝试了这个并且它起作用了:

let markerIndex = indexOfMarker(markers) { $0.position.latitude == latitude && $0.position.longitude == longitude }

最佳答案

struct SomeStruct {
let a, b: Int
}

let one = SomeStruct(a: 1, b: 1)
let two = SomeStruct(a: 2, b: 2)
let three = SomeStruct(a: 3, b: 3)

let ar = [one, two, three]

let ans = ar.indexOf { $0.a == 2 } // 1?

或者,在 Swift 1 上,indexOf 函数可以是:

func indexOfOld<S : SequenceType>(seq: S, predicate: S.Generator.Element -> Bool) -> Int? {

for (index, value) in enumerate(seq) {
if predicate(value) {
return index
}
}
return nil
}

然后将上面的最后一行替换为:

let ans = indexOfOld(ar) { $0.a == 2 } // 1?

关于ios - 如何获取属性值符合特定条件的数组中对象的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31138216/

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