Introdução
Neste laboratório, exploraremos a programação JavaScript e aprenderemos a usar os métodos Array.prototype.reduce(), Array.prototype.filter() e Array.prototype.map() em conjunto para criar uma função que filtra um array de objetos com base em uma condição e também filtra chaves não especificadas. Este laboratório ajudará a aprimorar nossa compreensão da programação funcional em JavaScript e como manipular arrays de objetos de maneira concisa e eficiente.
Filtrando Objetos por Condição e Chaves
Para filtrar um array de objetos com base em uma condição, ao mesmo tempo em que filtra chaves não especificadas, use a função reducedFilter().
Aqui estão os passos a seguir:
Use
Array.prototype.filter()para filtrar o array com base no predicadofn, de modo que retorne os objetos para os quais a condição retornou um valor verdadeiro (truthy).Use
Array.prototype.map()no array filtrado para retornar o novo objeto.Use
Array.prototype.reduce()para filtrar as chaves que não foram fornecidas como argumentokeys.
const reducedFilter = (data, keys, fn) =>
data.filter(fn).map((el) =>
keys.reduce((acc, key) => {
acc[key] = el[key];
return acc;
}, {})
);
Aqui está um exemplo de uso da função reducedFilter():
const data = [
{
id: 1,
name: "john",
age: 24
},
{
id: 2,
name: "mike",
age: 50
}
];
reducedFilter(data, ["id", "name"], (item) => item.age > 24);
// Output: [{ id: 2, name: 'mike'}]
Para começar a praticar a codificação, abra o Terminal/SSH e digite node.
Resumo
Parabéns! Você concluiu o laboratório de Filtragem de Correspondência e Valores Não Especificados. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.