indexOf<T> function

int indexOf <T>(Iterable<T> elements, bool predicate(T element))

Returns the index of the first item in elements where predicate evaluates to true.

Returns -1 if there are no items where predicate evaluates to true.

Implementation

int indexOf<T>(Iterable<T> elements, bool predicate(T element)) {
  if (elements is List<T>) {
    for (int i = 0; i < elements.length; i++) {
      if (predicate(elements[i])) return i;
    }
    return -1;
  }

  int i = 0;
  for (T element in elements) {
    if (predicate(element)) return i;
    i++;
  }
  return -1;
}