Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

190
Visualizações
Improve my function to reduce duplicated values

Here is my array:

export const plantList = [
    {
        name: 'monstera',
        category: 'classique',
        id: '1ed'
    },
    {
        name: 'ficus lyrata',
        category: 'classique',
        id: '2ab'
    },
    {
        name: 'pothos argenté',
        category: 'classique',
        id: '3sd'
    },
    {
        name: 'yucca',
        category: 'classique',
        id: '4kk'
    },
    {
        name: 'olivier',
        category: 'extérieur',
        id: '5pl'
    },
    {
        name: 'géranium',
        category: 'extérieur',
        id: '6uo'
    },
    {
        name: 'basilique',
        category: 'extérieur',
        id: '7ie'
    },
    {
        name: 'aloe',
        category: 'plante grasse',
        id: '8fp'
    },
    {
        name: 'succulente',
        category: 'plante grasse',
        id: '9vn'
    }
]

And here is my code to remove the duplicate values:

const categories = plantList.reduce(
    (acc, plant) =>
        acc.includes(plant.category) ? acc : acc.concat(plant.category),
    []
);

Is there a better way to do this? I don't know why but React doesn't compile with the one-liner.

const categories = Array.from(new Set(plantList));
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

I think the best approach is using reduce and Map object. This is a single line solution.

const plantList = [
    {
        name: 'monstera',
        category: 'classique',
        id: '1ed'
    },
    {
        name: 'ficus lyrata',
        category: 'classique',
        id: '2ab'
    },
    {
        name: 'pothos argenté',
        category: 'classique',
        id: '3sd'
    },
    {
        name: 'yucca',
        category: 'classique',
        id: '4kk'
    },
    {
        name: 'olivier',
        category: 'extérieur',
        id: '5pl'
    },
    {
        name: 'géranium',
        category: 'extérieur',
        id: '6uo'
    },
    {
        name: 'basilique',
        category: 'extérieur',
        id: '7ie'
    },
    {
        name: 'aloe',
        category: 'plante grasse',
        id: '8fp'
    },
    {
        name: 'succulente',
        category: 'plante grasse',
        id: '9vn'
    }
];

const uniqueData = [...plantList.reduce((map, obj) => map.set(obj.category, obj), new Map()).keys()];

console.log(uniqueData)

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda