Introdução
Neste laboratório, exploraremos como usar a função pickBy() para criar um novo objeto composto apenas pelos pares chave-valor para os quais uma determinada função retorna um valor verdadeiro (truthy). Essa função pode ser útil em cenários onde você precisa filtrar certas propriedades de um objeto com base em certos critérios. Aprenderemos como usar Object.keys(), Array.prototype.filter() e Array.prototype.reduce() para realizar essa tarefa.
Função para selecionar chaves de objeto que correspondem a uma condição dada
Para selecionar chaves de objeto que correspondem a uma condição dada, use a função pickBy(). Esta função cria um novo objeto composto pelas propriedades para as quais a função fornecida retorna um valor verdadeiro (truthy).
- Use
Object.keys()eArray.prototype.filter()para remover as chaves para as quaisfnretorna um valor falso (falsy). - Use
Array.prototype.reduce()para converter as chaves filtradas de volta em um objeto com os pares chave-valor correspondentes. - A função de callback é invocada com dois argumentos: (valor, chave).
Aqui está o código para a função pickBy():
const pickBy = (obj, fn) =>
Object.keys(obj)
.filter((k) => fn(obj[k], k))
.reduce((acc, key) => ((acc[key] = obj[key]), acc), {});
Você pode usar esta função para selecionar chaves que correspondem a uma condição. Por exemplo:
pickBy({ a: 1, b: "2", c: 3 }, (x) => typeof x === "number");
// { 'a': 1, 'c': 3 }
Resumo
Parabéns! Você concluiu o laboratório Pick Matching Object Keys. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.