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 GitHubCi 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)
Lascia un commento