Cancellare in Javascript: Come rimuovere la proprietà di un oggetto in JS

Lo scopo dell’operatore di cancellazione in Javascript, come si potrebbe pensare è quello di cancellare le cose. Più specificamente, cancellerà le proprietà degli oggetti. L’operatore delete è progettato per essere usato sulle proprietà degli oggetti. Non influenza le variabili o le funzioni.

Dopo la cancellazione, la proprietà non può essere usata prima di aggiungerla di nuovo all’oggetto.

Javascript Delete Operator

Javascript delete è un operatore incorporato che rimuove la proprietà dall’oggetto. L’operatore di cancellazione rimuove sia il valore della proprietà che la proprietà stessa. Se non ci sono più riferimenti alla stessa proprietà, allora essa viene rilasciata automaticamente.

L’operatore di cancellazione ha anche un valore di ritorno. Se riesce a cancellare la proprietà, restituisce true. Se non riesce a rimuovere la proprietà perché la proprietà non è scrivibile, restituirà false, o se in modalità strict, darà un errore.

Sintassi

La sintassi dell’operatore Javascript Delete è la seguente.

delete object.property// ordelete object

Vediamo il seguente esempio.

// app.jslet appObj = {a: 21, b: 22, c: 23}; console.log(appObj.a);delete appObj.a;console.log(appObj);

Vedi l’output.

Javascript Delete Operator Tutorial

Una cosa da tenere a mente è che l’operatore delete non dovrebbe essere usato sulle proprietà predefinite degli oggetti JavaScript. Può mandare in crash la vostra applicazione.

Ora, se provate a cancellare l’intero oggetto, allora potrebbe non essere possibile per voi. Può solo rimuovere le proprietà dall’oggetto e non l’intero oggetto.

// app.jslet appObj = {a: 21, b: 22, c: 23}; console.log(appObj);delete appObj;console.log(appObj);

Vedi l’output.

Come rimuovere la proprietà dall'oggetto

A differenza di quanto suggerisce la credenza comune, un operatore di cancellazione in Javascript non ha nulla a che fare con la liberazione diretta della memoria. La gestione della memoria è fatta indirettamente rompendo i riferimenti.

L’operatore di cancellazione rimuove la proprietà data dall’oggetto. Quando la cancellazione ha successo, restituisce true; altrimenti, viene restituito false. Tuttavia, è essenziale considerare i seguenti casi.

  1. Se la proprietà che state cercando di cancellare non esiste nell’oggetto, allora la cancellazione non avrà alcun effetto e restituirà true.
  2. Se la proprietà con lo stesso nome esiste nella catena dei prototipi dell’oggetto, allora, dopo la cancellazione, un oggetto userà la proprietà dalla catena dei prototipi. Quindi, andrà per la gerarchia superiore.

Vediamo il seguente esempio di True o False.

// app.jslet appObj = {a: 21, b: 22, c: 23}; console.log(appObj);console.log(delete appObj.d);

Vediamo il seguente esempio.

Javascript Delete Operator Tutorial | Remove Property From Object

Si può vedere che se la proprietà dell’oggetto non esiste, e se si prova a rimuovere quella proprietà che non esiste, allora ci darà il vero in output.

Benchmark dell’operatore Delete in Javascript

Puoi vedere il benchmark qui.

Delete è l’unico modo vero per rimuovere le proprietà dell’oggetto senza alcun avanzo, ma funziona ~ 100 volte più lento del suo “modo alternativo”, che è il seguente.

object = undefined

Questa alternativa non è il modo corretto per rimuovere la proprietà da un oggetto. Ma, se lo usate con cura, potete velocizzare drasticamente alcuni algoritmi.

Quindi, quando usare undefined e quando usare l’operatore delete?

L’oggetto può essere visto come un insieme di coppie chiave-valore. Quello che chiamo ‘valore’ è una primitiva o un riferimento ad un altro oggetto, collegato a quella ‘chiave’.

Utilizza l’operatore delete quando passi un oggetto risultato al codice sul quale non hai alcun controllo (o quando non sei sicuro della tua squadra o di te stesso). Cancella la chiave dall’hashmap.

let obj = { prop: 1 }; delete obj.prop;

Usate l’undefined quando vi interessa la performance. Può dare un’ottima spinta al vostro codice.

La chiave rimane al suo posto nella hashmap, e solo il valore viene sostituito con un indefinito.

Capite che for in loop itererà ancora su quella chiave.

let obj = { prop: 1 }; obj.prop = undefined;

Utilizzando il metodo di cui sopra, non tutti i modi di determinare l’esistenza della proprietà funzioneranno come previsto.

Tuttavia, questo codice:

object.prop === undefined

si comporterà in modo equivalente per entrambi i metodi.

Conclusione

La necessità di un operatore di cancellazione Javascript è ogni volta che si vuole rimuovere una proprietà da un oggetto. A volte piuttosto che cancellare una proprietà, gli sviluppatori JavaScript le daranno un valore nullo.

Finalmente, l’esempio di rimuovere una proprietà da un oggetto in Javascript è finito.

Post raccomandati

Valori degli oggetti Javascript

Javascript Async / Await

Javascript Fetch API

Classe Javascript

Javascript Import

Lascia un commento

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