Aprende Lodash: _.find, encuentra un valor en un array o un objeto

Según la documentación de lodash, _.find itera sobre los elementos de una colección y devuelve el primer elemento para el que el predicado devuelve un valor truthy. El predicado se invoca con tres argumentos: (value, index|key, collection).

Argumentos

  • collection (Array u Object): La colección que se inspeccionará.
  • [predicate=_.identity] función, objeto, array o cadena
  • [fromIndex=0] (number): El índice desde el que se realizará la búsqueda.

Recrea _.find de lodash usando JavaScript puro.

La diferencia entre _.find de lodash y el método find de JavaScript es que el método de JavaScript solo se puede aplicar a arrays y solo puede recibir una función de callback como esta: array.find(d => d.isTheBest). El método find de lodash puede llamarse tanto con arrays como con objetos, y puede recibir una función, un objeto o un array, que utiliza para realizar la búsqueda.

De esta forma:

_.find(array, {isTheBest: true})

_.find(array, "isBest")

_.find(array, ["isBest", true])

Ejemplos

var users = [
  { "user": "barney",  "age": 36, "active": true },
  { "user": "fred",    "age": 40, "active": false },
  { "user": "pebbles", "age": 1,  "active": true }
]

find(users, function(o) { return o.age < 40; }) ➞ object for "barney"

find(users, { "age": 1, "active": true }) ➞ object for "pebbles"

find(users, ["active", false]) ➞ object for "fred"

find(users, "active") ➞ object for "barney"

Notas

  • No intentes importar lodash; simplemente estás escribiendo tu propia versión.
  • Puedes encontrar toda esta serie de desafíos aquí.