Introdução
Neste laboratório, exploraremos a implementação da função differenceBy em JavaScript. Esta função nos permite encontrar a diferença entre dois arrays aplicando uma função fornecida a cada elemento em ambos os arrays. Aprenderemos como usar Set, Array.prototype.map() e Array.prototype.filter() para comparar e filtrar arrays de forma eficaz com base em um critério específico.
Função para Retornar a Diferença de Dois Arrays por Mapeamento
Para começar a codificar, abra seu Terminal/SSH e digite node.
Esta função recebe dois arrays e aplica a função fornecida a cada elemento em ambos os arrays para retornar sua diferença.
Para fazer isso:
- Crie um
Setaplicando a função (fn) a cada elemento no segundo array (b). - Use
Array.prototype.map()para aplicar a função (fn) a cada elemento no primeiro array (a). - Use
Array.prototype.filter()em combinação com a função (fn) no primeiro array (a) para manter apenas os valores que não estão contidos no segundo array (b), usandoSet.prototype.has().
Aqui está o código para a função:
const differenceBy = (a, b, fn) => {
const s = new Set(b.map(fn));
return a.map(fn).filter((el) => !s.has(el));
};
Aqui estão alguns exemplos de como usar a função:
differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor); // [1]
differenceBy([{ x: 2 }, { x: 1 }], [{ x: 1 }], (v) => v.x); // [2]
Resumo
Parabéns! Você concluiu o laboratório de Diferença de Array Mapeado. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.