获取具有数组数组内最大对象的数组

时间:2017-08-14 18:58:33

标签: ios arrays swift cllocation

我有一个CLLocations数组的数组,我正在尝试根据其时间戳找到具有最近发生的CLLocation对象的数组。索引或实际列表就足够了。

到目前为止,我已提出:

let latestList = listOfListOfLocations.index{$0.max{a,b in a.timestamp < b.timestamp} < $1.max{c,d in c.timestamp < d.timestamp}}

但我没有运气,也无法理解它对Swift来说相对较新。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

不确定这是否是最充分的实现,但它确实有效。

let mostRecent = listOfListOfLocations.max{$0.max{$0.timestamp < $1.timestamp}! < $1.max{$0.timestamp < $1.timestamp}!}?.max()

答案 1 :(得分:0)

首先得到每个数组的“submaxes”,然后取最大值获得全局最大值。

let subArrayContainingMostRecentObject = listOfListOfLocations
    .flatMap{ subarray in
        return subarray
            .max{ $0.timestamp < $1.timestamp }
            .map{ submax in (subarray: subarray, submax: submax) }
    }
    .max{ $0.submax.timestamp < $1.submax.timestamp }?.subarray