配列はCLLocations
です。私の目標は、次の場所と同じ場所で配列の最後の位置を見つけ、次にすべてのオブジェクトを削除することです。逆の列挙を使用して、配列内の同様のオブジェクトをフィルタリングします。
例:私が代わりに新しいものを作成するのではなく、それらが保存されている配列を変化させたい
[lat: 11.123, long: 11.123,
lat: 12.345, long: 123.123,
lat: 14.124, long: 14.124,
lat: 16.1661, long: 16.1616,
lat: 15.1515, long: 15.1515,
lat: 15.1515, long: 15.1515, //Remove
lat: 15.1515, long: 15.1515] //Remove
。これまで
私の試み:
var reversedLocations = Array(locations.reverse())
for (index,location) in reversedLocations.enumerate() {
if index+1 <= reversedLocations.count-1 {
let distanceToNext = LocationInterface.sharedInterface.distanceBetweenLocations(first: location, last: locations[index+1])
if distanceToNext < 10 {
reversedLocations.removeAtIndex(reversedLocations.indexOf(location)!)
toDate = reversedLocations.first!.timestamp
}
}
}
しかし、このコードは混乱している、と私はそれを行うための最善の方法はよく分かりません。関数はちょうど混乱です、私は配列の列挙を変更するので、インデックスは正しくありません。 Array.reduce、.sort、.map、またはこれに類するものがありますか?あなたがCLLocation
の配列を持っている場合
は、次のとおりです。
OPを使用した溶液以外の他の重複を削除します確かにそれは配列ですか? – Carpsen90
この例は、構文に合った配列ではありません。私は自分でそれをタイプしました。場所は配列です。 –