Aprenda Lodash: escreva a função "Property" - Retorne o valor no final de uma string em um objeto

Escreva sua própria versão da função _.property do lodash usando JavaScript puro.

Ela recebe uma string ou um array que representa um caminho em um objeto e retorna uma função que recebe um objeto. A nova função então retornará o valor no final do caminho.

Por exemplo, ao usar o método map normal do JavaScript, você poderia aplicar map a um array assim:

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

Mas, se você estivesse usando property, poderia escrever assim:

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

Esta é uma função auxiliar frequentemente usada por outras funções mais avançadas do lodash. À medida que escrevermos mais funções próprias do lodash, precisaremos usá-la.

Por exemplo, a função "takeWhile" do lodash percorre um array de objetos e retorna aqueles que correspondem à condição. Você pode escrevê-la como _.takeWhile(users, 'active'), e ela saberá que você quer usar a função auxiliar "property" porque recebeu uma string. Em seguida, ela a aplicará a cada valor do array e, se 'active' for true, retornará esse valor. Isso é útil ao escrever funções descritivas que expressem o que está acontecendo em cada etapa do seu código.

Argumentos

  • path (Array or String): O caminho da propriedade a ser obtida.
  • retorna: Uma nova função.

Exemplos

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

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

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

Observações

  • Não importe o lodash; seu desafio é escrever sua própria versão.
  • Você pode encontrar a série completa de desafios aqui.