Quante volte vi è capitato di dover aggiungere una proprietà ad un oggetto solo se una certa variabile booleana è true
? Il modo comune di farlo è il seguente:
const obj = {}
if(shouldBeAdded) {
obj.prop = value;
}
Vi è però un modo molto più veloce da scrivere e facilmente estendibile, che vi illustriamo nel seguente snippet:
const obj = {
...shouldBeAdded && { prop: value },
};
Nel caso in cui shouldBeAdded
sia true
, l'operatore &&
ha come valore risultante { prop: value }
che verrà dato in pasto all'object spread. Altrimenti viene computato lo spread di false
che non ha alcun effetto collaterale.
Sulla falsariga di quanto detto sopra vi illustriamo il modo più veloce per aggiungere una proprietà numerica ad un array:
const array = [
...shouldBeAdded ? [value] : [],
]
In questo caso l'array spread agirà su un array contenente il value
oppure su un array vuoto, senza effetti collaterali, in base al valore di verità di shouldBeAdded
.
Come possiamo convertire velocemente una stringa in numero o viceversa senza dover passare dai costruttori String
e Number
?
const strFromN = n + "";
const nFromStr = +str;