Introdução
Neste laboratório, exploraremos como verificar se dois arrays possuem o mesmo conteúdo em JavaScript. Criaremos uma função que recebe dois arrays e retorna true se eles contiverem os mesmos elementos, independentemente da ordem, e false caso contrário. Usaremos uma combinação de Set, loop for...of e Array.prototype.filter() para alcançar essa funcionalidade.
Verificando se Arrays Possuem o Mesmo Conteúdo
Para verificar se dois arrays contêm os mesmos elementos, independentemente da ordem, siga estes passos:
- Abra o Terminal/SSH e digite
node. - Use um loop
for...ofsobre umSetcriado a partir dos valores de ambos os arrays. - Use
Array.prototype.filter()para comparar a quantidade de ocorrências de cada valor distinto em ambos os arrays. - Retorne
falsese as contagens não corresponderem para nenhum elemento,truecaso contrário.
Aqui está o código para isso:
const haveSameContents = (a, b) => {
for (const v of new Set([...a, ...b]))
if (a.filter((e) => e === v).length !== b.filter((e) => e === v).length)
return false;
return true;
};
Para testar a função, use o seguinte código:
haveSameContents([1, 2, 4], [2, 4, 1]); // true
Resumo
Parabéns! Você concluiu o laboratório "Verificar se Arrays Possuem o Mesmo Conteúdo". Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.