Aprende Lodash: escribe la función "Property" - Devuelve el valor al final de una cadena en un objeto

Escribe tu propia versión de la función _.property de lodash usando JavaScript puro.

Recibe una cadena o un array que representa una ruta en un objeto y devuelve una función que recibe un objeto. La nueva función devolverá entonces el valor al final de la ruta.

Por ejemplo, al usar el método map normal de JavaScript, podrías aplicar map a un array de la siguiente manera:

arrayOfCars.map(car => car.engine.sparkPlugs.replacementYear)
returns [2020, 2021]

Pero si usaras property, podrías escribirlo así:

arrayOfCars.map(property('engine.sparkPlugs.replacementYear'))
also returns [2020, 2021]

Esta es una función auxiliar que suelen usar otras funciones de lodash más avanzadas. A medida que escribamos más funciones de lodash propias, necesitaremos usarla.

Por ejemplo, la función de lodash "takeWhile" recorre un array de objetos y devuelve los que coinciden. Puedes escribirla como _.takeWhile(users, 'active') y sabrá que quieres usar la función auxiliar "property" porque recibió una cadena. Luego la aplicará a cada valor del array y, si 'active' es true, lo devolverá. Esto resulta útil al escribir funciones descriptivas que indiquen qué ocurre en cada paso del código.

Argumentos

  • path (Array or String): La ruta de la propiedad que se debe obtener.
  • devuelve: Una función nueva.

Ejemplos

const objects = [
  { "a": { "b": 2 } },
  { "a": { "b": 1 } }
]

objects.map(object, _.property("a.b"));
// => [2, 1]

objects.map(object, _.property(["a", "b"]));
// => [2, 1]

Notas

  • No importes lodash; tu desafío consiste en escribir tu propia versión.
  • Puedes encontrar la serie completa de desafíos aquí.