[Swift] 배열에서 연속된 값 추리기

Int 배열에서 특정 index 를 선택했을 때, 해당 index에 연속된 index의 배열을 찾는 방법

원래는 위치 좌표 목록이 있고, 내 반경 n미터 이내의 좌표들의 index를 구한 다음, 그 중 가장 빠른 index에 연속된 index를 찾아내고, 해당 index의 좌표 값 중 나와 가장 가까운 좌표의 index를 찾는 건데, 설명은 무지 복잡하네…

let indices = [4, 5, 6, 7, 8, 9, 110, 111, 112] // 내 반경 n미터 이내 좌표들의 index
let storedIndex = 2 // 저장된 index

var lastContinuesIndex = indices.count // 9
var reduceCount = storedIndex

indices[storedIndex ..< indices.count]
  .reduce(indices[storedIndex]) {
    if $1 - $0 > 1 {
      lastContinuesIndex = reduceCount // 6
    }
    reduceCount += 1
    return $1
  }

indices[storedIndex ..< lastContinuesIndex] // [6, 7, 8, 9]

index 6의 좌표가 내가 마지막으로 통과한 지점인데, 어느 구간을 건너뛰어서 다시 경로로 복귀했다면, 6 ~ 끝까지의 좌표 중에서 나와 가장 가까운 좌표를 구할 수 있다. 만약 경로가 겹치는 구간이라면 index 6과 연결된 선을 먼저 사용하는 방식이다.

그냥 reduce 사용법 남겨두려고 적었다.