Filtro e array push con Set()

⏱ Tempo di lettura:

1 minuto

Con questo snippet eseguiamo un filtro per valori unici in un array di oggetti e aggiungiamo un valore nuovo utilizzando un oggetto Set() e l’operatore spread.

JavaScript
// Data array
const data = [
  {key: 'value 1'},
  {key: 'value 1'},
  {key: 'value 2'},
  {key: 'value 3'}
]

// Extended version
// 1. get all values
// 2. create a new Set and get unique values
// 3. create a new array and add a new value
const values = data.map(value => value.key) // ['value 1', 'value 1', 'value 2', 'value 3']
const uniqueValues = new Set(values) // {'value 1', 'value 2', 'value 3'}
const newUniqueValues = [...uniqueValues, 'value 4'] // ['value 1', 'value 2', 'value 3', 'value 4']

// Short Version (all-in-one)
const newerUniqueValues = [...new Set(data.map(value => value.key)), 'value 4'] // ['value 1', 'value 2', 'value 3', 'value 4']
Vedi su GitHub

Ci sono due versioni: quella estesa vi aiuta a capire i passaggi, quella breve raggruppa tutto. L’output è lo stesso, come si può vedere – e testare!

Nota: mi vedete usare una arrow function senza qualche parentesi. Non è un errore, se il parametro è uno e l’espressione è su una singola linea si possono sopprimere le parentesi. Esempio:

JavaScript
// Questa funzione ...
const arrowFunction = (value) => {console.log(value)}
// ... si può scrivere così
const arrowFunction = value => console.log(value)

Commenti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *