2017-08-14 1 views
0

Ich habe ein Array von einem Array von CLLocations und ich versuche, das Array zu finden, die das CLLocation-Objekt hat, die zuletzt nach seinem Timestamp passiert. Entweder der Index oder die tatsächliche Liste wäre ausreichend.Holen Sie sich das Array mit dem größten Objekt in einem Array eines Arrays

Bisher habe ich kommen mit:

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

aber ich bin kein Glück bekommen und kann meinen Kopf nicht umgehen es relativ neu in Swift ist. Jede Hilfe würde sehr geschätzt werden.

Antwort

0

zuerst die „submaxes“ jedes Arrays erhalten, und dann den max die das globale Maximum zu erhalten.

+0

@MartinR Danke, ich werde es in Kürze aktualisieren – Alexander

+0

Das ist großartig danke, wie könnte ich das auch ändern, um den Index zu bekommen? – user3599895

+0

@ user3599895 Welcher Index? – Alexander

0

Nicht sicher, ob dies die am besten geeignete Implementierung ist, aber es funktioniert.

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

+0

Sie sind besser dran, einen Durchlauf durch jedes Sub-Array zu machen, um ihre maxes zu erhalten, und dann einen Durchlauf durch das Array von Submaxes, um den globalen max. Ansonsten müssen die Submax jedes Subarrays neu berechnet werden, wenn zwei Arrays verglichen werden. – Alexander

Verwandte Themen