Filtrar Valores Únicos de Array com Base em Função

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Neste laboratório, aprenderemos como criar um array com valores únicos filtrados com base em uma função comparadora em JavaScript. Usaremos os métodos Array.prototype.filter() e Array.prototype.every() para criar um array contendo apenas os valores não únicos. Este laboratório fornecerá experiência prática na filtragem de valores únicos de array usando uma função comparadora.

Filtrar Valores Únicos de Array com Base em Função

Aqui está como criar um array que contém apenas os valores não únicos, filtrando os únicos com base em uma função comparadora, fn:

const filterUniqueBy = (arr, fn) =>
  arr.filter((v, i) => arr.some((x, j) => (i !== j) === fn(v, x, i, j)));

Para usar esta função, chame filterUniqueBy() com dois argumentos: o array que você deseja filtrar e a função comparadora. A função comparadora deve receber quatro argumentos: os valores dos dois elementos sendo comparados e seus índices.

Por exemplo, se você tiver um array de objetos e quiser filtrar os objetos com valores id únicos, você pode fazer isso:

filterUniqueBy(
  [
    { id: 0, value: "a" },
    { id: 1, value: "b" },
    { id: 2, value: "c" },
    { id: 3, value: "d" },
    { id: 0, value: "e" }
  ],
  (a, b) => a.id == b.id
); // [ { id: 0, value: 'a' }, { id: 0, value: 'e' } ]

Para começar a praticar a codificação, abra o Terminal/SSH e digite node.

Resumo

Parabéns! Você concluiu o laboratório Filtrar Valores Únicos de Array com Base em Função. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.