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

206
Visualizações
Filter array with unique values

This has been posted time and time again and after reading them all, I still don't know what I'm doing wrong. I understand there are so many ways to do this and I get the feeling I've mixed them up.

I'm trying to get the uniques value from serviceType so rather than having Cars Now, Cars Now, Vans Now, I should only have Cars No, Vans Now.

See attached code

const preFilteredRows = [
{
"serviceType": "Cars Now",
"applictionType": "Direct",
"wheelType": "4x4"
},
{
"serviceType": "Cars Now",
"applictionType": "web",
"wheelType": "2x4"
},
,
{
"serviceType": "Vans Now",
"applictionType": "Direct",
"wheelType": "2x4"
}
]

let tempArr = [];
preFilteredRows.forEach(row => {
    if(row.values[serviceType].length == 1) tempArr.push(row.values[serviceType][0])
})
/* return [...new Set(tempArr)] */
newServiceSet = [...new Set(tempArr)]
console.log(newServiceSet)

UPDATE: Thank you all so much for your feedback, I really do appreciate your help with my learning.

One part I forgot to add to my question and just realise is, I not only need the uniques values, but I also need them displayed like the below image so each value has a value and a label. I don't need the count anymore.

enter image description here

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

If I understand correctly you want

[
  "Cars Now",
  "Vans Now"
]

Do a map and filter and then do your spread operator for unique values.

const preFilteredRows = [
{
"serviceType": "Cars Now",
"applictionType": "Direct",
"wheelType": "4x4"
},
{
"serviceType": "Cars Now",
"applictionType": "web",
"wheelType": "2x4"
},
,
{
"serviceType": "Vans Now",
"applictionType": "Direct",
"wheelType": "2x4"
}
]

let tempArr = preFilteredRows.map(row => row.serviceType) // map extracts the serviceType
           .filter(service => service); // filter removes any undefined/empty values

newServiceSet = [...new Set(tempArr)] // only keeps unique values

console.log(newServiceSet)

about 4 years ago · Juan Pablo Isaza Relatório

0

You can do it like this:

  • map - to map each object from array to its serviceType property value
  • new Set - to get all unique values from the array generated in above step

const preFilteredRows = [
  { "serviceType": "Cars Now", "applictionType": "Direct", "wheelType": "4x4" },
  { "serviceType": "Cars Now", "applictionType": "web", "wheelType": "2x4" },
  { "serviceType": "Vans Now", "applictionType": "Direct", "wheelType": "2x4" }
];

const unique_types = [...new Set(preFilteredRows.map(item => item.serviceType))];
console.log(unique_types);

about 4 years ago · Juan Pablo Isaza Relatório

0

A mix of map and filter would be do this job.

const preFilteredRows = [
{
"serviceType": "Cars Now",
"applictionType": "Direct",
"wheelType": "4x4"
},
{
"serviceType": "Cars Now",
"applictionType": "web",
"wheelType": "2x4"
},
,
{
"serviceType": "Vans Now",
"applictionType": "Direct",
"wheelType": "2x4"
}
]
const n = [...new Set( preFilteredRows.map(obj => obj.serviceType)) ].filter(f => f);

console.log(n)

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