indexWhere
Devuelve el índice del primer elemento para el que el predicado es cierto, o -1.
Lección
indexWhere es el nombre idiomático en Dart (cf.
List.indexWhere); fxdart también acepta la grafía
findIndex de FxTS: son el mismo operador. Es el hermano de
find: el mismo
recorrido perezoso y con cortocircuito, pero informa de dónde
estaba la coincidencia en vez de la coincidencia en sí. Fíjate en el
valor centinela distinto para «no encontrado» — aquí es -1,
un int, igual que el Array.prototype.findIndex
de JavaScript. Es un contraste deliberado con
head/find/nth, que todos usan
null: un índice tiene un valor «imposible» natural, así que
FxDart mantiene aquí la convención de FxTS en lugar de inventarse un tipo
de retorno int?.
Por dentro empareja cada elemento con su índice (mediante zipWithIndex)
y se detiene en el primero que pasa f.
Demo 1 · Fundamentos
Demo 2 · Cortocircuito & asíncrono
Pruébalo tú
Ejercicio: usa indexWhere para encontrar la posición de bob en la cola, o -1.
find — la misma búsqueda, pero devuelve el valor ·
includes — solo «¿está o no?» ·
nth — el inverso: entra un índice, sale un valor ·
zipWithIndex — lo que lo hace funcionar por dentro