Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

205
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda