A causa della natura non tipizzata di JavaScript, accade spesso che in un oggetto vi possano essere proprietà non volute o che, per scelta, non vogliamo avere. Pensiamo a un oggetto persona che contiene dati sensibili e che deve essere anonimizzato al momento del salvataggio.
In quest casi abbiamo a disposizione l'operatore delete, il quale però va a modificare la natura dell'oggetto stesso; questo approccio può risultare dannoso quando l'architettura dell'applicazione è basata sugli stati e predilige l'utilizzo di oggetti immutabili.
Con l'utilizzo dell'operatore rest (...) si può arrivare allo stesso obbiettivo senza intaccare l'oggetto originario.
const persona = { nome: "Morgan", anno: 1992, citta: "Milano" }; const { nome, ...p } = persona; console.log(nome); // "Morgan" console.log(p); // { anno: 1992, citta: "Milano" }
Utilizzando la stessa sintassi è anche possibile rimuovere una proprietà dinamica, senza definirla a priori
const propDaRimuovere = 'nome', const persona = { nome: "Morgan", anno: 1992, citta: "Milano" }; const { [propDaRimuovere] : r, ...p } = persona; console.log(r); // "Morgan" console.log(p); // { anno: 1992, citta: "Milano" }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare la versione generica di EntityTypeConfiguration in Entity Framework Core
Miglioramenti nell'accessibilità con Angular CDK
Utilizzare Azure AI Studio per testare i modelli AI
Definire stili a livello di libreria in Angular
Ordinare randomicamente una lista in C#
Utilizzare Tailwind CSS all'interno di React: primi componenti
Ottenere un token di accesso per una GitHub App
Installare le Web App site extension tramite una pipeline di Azure DevOps
Creare una libreria CSS universale: Cards
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Utilizzare il nuovo modello GPT-4o con Azure OpenAI
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL