Introdução
Neste laboratório, exploraremos uma função JavaScript que filtra valores não únicos de um array com base em uma função comparadora fornecida. Usando Array.prototype.filter() e Array.prototype.every(), criaremos um novo array que contém apenas os valores únicos com base na função comparadora. Este laboratório visa aprimorar sua compreensão dos métodos de array JavaScript e como usá-los para manipular dados.
Filtrando Valores Não Únicos de um Array com uma Função
Para começar a praticar a codificação, abra o Terminal/SSH e digite node.
Este código filtra valores não únicos de um array, com base em uma função comparadora fornecida. Aqui estão os passos para alcançar isso:
- Use
Array.prototype.filter()eArray.prototype.every()para criar um novo array com apenas os valores únicos com base na função comparadorafn. - A função comparadora recebe quatro argumentos: os valores dos dois elementos sendo comparados e seus índices.
- A função
filterNonUniqueByimplementa os passos acima e retorna o array de valores únicos.
const filterNonUniqueBy = (arr, fn) =>
arr.filter((v, i) => arr.every((x, j) => (i === j) === fn(v, x, i, j)));
Aqui está um exemplo de como usar esta função:
filterNonUniqueBy(
[
{ id: 0, value: "a" },
{ id: 1, value: "b" },
{ id: 2, value: "c" },
{ id: 1, value: "d" },
{ id: 0, value: "e" }
],
(a, b) => a.id === b.id
); // [ { id: 2, value: 'c' } ]
Este código é conciso, claro e coerente e deve funcionar como esperado.
Resumo
Parabéns! Você concluiu o laboratório "Filtrar Valores Não Únicos de Array com Base em Função". Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.