Introdução
Neste laboratório, exploraremos o conceito de interseção de arrays em JavaScript. Especificamente, implementaremos uma função que retorna os elementos comuns entre dois arrays, após aplicar uma função fornecida a cada elemento de ambos os arrays. Este laboratório ajudará você a entender como usar funções de ordem superior (higher-order functions) em JavaScript para manipular arrays e resolver problemas comuns de programação.
Instruções para Encontrar a Interseção de Arrays Mapeados
Para encontrar elementos comuns em dois arrays após aplicar uma função a cada elemento de ambos os arrays, siga estes passos:
- Abra o Terminal/SSH e digite
node. - Use o código fornecido abaixo:
const intersectionBy = (a, b, fn) => {
const s = new Set(b.map(fn));
return [...new Set(a)].filter((x) => s.has(fn(x)));
};
- No código, substitua
aebpelos seus arrays efnpela função que você deseja aplicar a cada elemento. - Execute o código para obter o array resultante com os elementos comuns.
Exemplo:
intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor); // [2.1]
intersectionBy(
[{ title: "Apple" }, { title: "Orange" }],
[{ title: "Orange" }, { title: "Melon" }],
(x) => x.title
); // [{ title: 'Orange' }]
No primeiro exemplo, a função Math.floor é aplicada aos arrays [2.1, 1.2] e [2.3, 3.4], retornando o elemento comum [2.1].
No segundo exemplo, a função x => x.title é aplicada aos arrays [{ title: 'Apple' }, { title: 'Orange' }] e [{ title: 'Orange' }, { title: 'Melon' }], retornando o elemento comum [{ title: 'Orange' }].
Resumo
Parabéns! Você concluiu o laboratório de Interseção de Arrays Mapeados. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.