Aprende Lodash: matchesProperty, comprueba si un objeto contiene un par clave-valor

Escribe tu propia versión de la función de lodash _.matchesProperty usando JavaScript puro. matchesProperty devuelve una función que compara el objeto y la ruta proporcionados, que es un par clave-valor, y luego determina si el objeto incluye el par.

Por ejemplo, al usar el método find normal de JavaScript, lo escribirías así:

arrayOfCars.find(car => car.year === 2020)

Como la función matchesProperty devuelve una función, puede usarse para reemplazar la función de callback escrita en el método find. Usando matchesProperty, podría verse así:

arrayOfCars.find(matchesProperty("year", 2020))

Esta es una función auxiliar que suelen usar otras funciones más avanzadas de lodash que quieren comprobar si hay una coincidencia. A medida que escribamos más funciones de lodash, necesitaremos esta función auxiliar.

Esto es muy similar a la función matches. La única diferencia es la forma en que se pasan los argumentos: matches requiere un objeto, mientras que matchesProperty requiere dos cadenas que representan un par clave-valor.

Argumentos

  • path (Array or String): El par clave-valor de la ruta que usas para comprobar si está incluido en el objeto.
  • returns: Una nueva función.

Ejemplos

const objects = [
  { "a": 1, "b": 2, "c": 3 },
  { "a": 4, "b": 5, "c": 6 }
]
_.find(objects, _.matchesProperty("a", 4))
➞ [{ "a": 4, "b": 5, "c": 6 }]

Notas

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