Hoppa till huvudinnehåll

Unika värden i en array

· 2 min att läsa
Filip Tammergård
Programmerare på Frilans Finans

Tänk dig den här arrayen med namn:

const names = [
"Filip",
"Anna",
"Jennifer",
"Anna",
"Robert",
"Emma",
"Filip",
"Anna",
]

I arrayen förekommer Filip två gånger och Anna tre gånger. Tänk om vi vill filtrera bort dubbletterna och få en array med bara unika namn?

Det är ett perfekt användningsfall för Set-objektet! Set-objekt kan per definition bara innehålla unika värden, så när en array konverteras till ett Set-objekt filtreras dubbletterna bort automatiskt.

const namesSet = new Set(names)
// > Set(5) {'Filip', 'Anna', 'Jennifer', 'Robert', 'Emma'}

Här har vi ett Set-objekt med unika namn! Nu behöver vi bara konvertera tillbaka Set-objektet till en array så är vi klara.

Att konvertera ett Set-objekt till en array kan göras med Array.from():

const uniqueNames = Array.from(namesSet)
// > (5) ['Filip', 'Anna', 'Jennifer', 'Robert', 'Emma']

Ett annat alternativ är att använda spread-operatorn:

const uniqueNames = [...namesSet]
// > (5) ['Filip', 'Anna', 'Jennifer', 'Robert', 'Emma']

Komplett exempel

Här är det kompletta exemplet med båda stegen ihopslagna:

const names = [
"Filip",
"Anna",
"Jennifer",
"Anna",
"Robert",
"Emma",
"Filip",
"Anna",
]

const uniqueNames = [...new Set(names)]
// > (5) ['Filip', 'Anna', 'Jennifer', 'Robert', 'Emma']

Slutsats

  • Att ta bort dubbletter ur en array kan göras genom att konvertera arrayen till ett Set-objekt och sedan tillbaka till en array.

Referenser