Aprende Lodash: _.dropWhile, elimina elementos de un array hasta que se cumpla una condición
Según la documentación de lodash, _.dropwWhile crea una porción del array que excluye los elementos eliminados desde el principio. Los elementos se eliminan hasta que el predicado devuelve falsey. El predicado se invoca con tres argumentos: (value, index, array).
Esto es diferente de filter porque comprueba cada elemento hasta que se cumple la condición, como al filtrar hasta encontrar una coincidencia; después, deja de comprobar y devuelve el resto del array, aunque más adelante haya elementos que podrían cumplir la condición.
Argumentos
- array (Array): El array que se comprobará.
- predicate: Una función que se ejecutará en cada iteración.
Ejemplo del mundo real
Trabajas en un concesionario de autos. Llega un hombre y dice que no cree que existan los vehículos eléctricos. Tu intención es demostrarle que está equivocado. Vas al lote y revisas el primer vehículo. Usa gasolina... el tipo se está poniendo engreído, así que revisas el segundo vehículo y también usa gasolina. Por fin, revisas el tercer vehículo y es eléctrico.
Has eliminado los dos primeros elementos mientras no eran eléctricos; aunque pueda haber vehículos de gasolina más adelante, ya has demostrado tu punto y, en este caso, devolverías la lista de vehículos restantes.
Ejemplos
var users = [
{ "user": "barney", "active": false },
{ "user": "fred", "active": false },
{ "user": "pebbles", "active": true }
]
dropWhile(users, function(o) { return !o.active; })
➞ [{ "user": "pebbles", "active": true }]Notas
- No intentes importar lodash; simplemente estás escribiendo tu propia versión.
- Puedes encontrar toda esta serie de desafíos aquí.