Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

200
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!