sliceFromReverseWhile<T> function

ArraySlice<T> sliceFromReverseWhile<T>(
  1. List<T> arr,
  2. int startIndex,
  3. bool predicate(
    1. T currElm
    )
)

Returns consecutive list of elements satisfying the predicate starting from startIndex and traversing the array in reverse order.

Implementation

ArraySlice<T> sliceFromReverseWhile<T>(
  List<T> arr,
  int startIndex,
  bool Function(T currElm) predicate,
) {
  var result = ArraySlice(-1, <T>[]);
  for (var i = startIndex; i >= 0; i--) {
    if (!predicate(arr[i])) {
      break;
    }
    result.sliceStartsAt = i;
    result.elements.insert(0, arr[i]);
  }
  return result;
}