JS Tricks: Capitolo 1

Optional chaining, array con valori univoci e rimozione di proprietà dagli oggetti

# Optional chaining

L'operatore optional chaining è una delle novità più interessatati di ES2020. Con questo operatore possiamo accedere a una proprietà annidata all'interno di un oggetto senza vericarne l'esisteza e quindi senza ricevere il classico errore Uncaught TypeError: Cannot read property 'abc' of undefined. Purtroppo però non è ancora supportato da tutti i browser, nel frattempo possiamo utilizzare questo trucchetto per evitare di verificare l'esistenza delle chiavi con vari if:

const obj = { a: 1, b: { c: 3 } }

console.log(((obj.b || {}).c || {}).d || {}) // => {}

# Array con valori univoci

Ci sarà sicuramente capitato di dovere rimuovere i valori duplicati all'interno di un array, per fare questa operazione abbiamo diverse opzioni ma utilizzando i Set ES6 possiamo rimuovere i duplicati con una riga di codice:

const items = ["a", "b", "a", "c", "a", "b"]

console.log([...new Set(items)]) // => ["a", "b", "c"]

# Rimuovere proprietà dagli oggetti

In javascript non abbiamo molte soluzioni "native" per rimuovere le proprietà degli oggetti, possiamo utilizzare l'operatore delete che è un po' malvisto oppure installare alcune librerie come ad esempio lodash. Con l'introduzione dello destructuring assignment di ES6 possiamo fare questa operazione in maniera molto più semplice:

const obj = {
  a: 1,
  b: 2,
  c: 3
}

const { a, ...objWithoutA } = obj

console.log(objWithoutA) // => { b: 2, c: 3 }