Lavorare con gli array in JavaScript è un'operazione che spesso si può riassumere con la frase "è una faticaccia". Il motivo spesso è da ricercarsi nella mancanza di funzionalità per la manipolazione degli stessi all'interno di ES (EcmaScript). A questo proposito esistono varie librerie come Lodash e Underscore.js che implementano le principali e più comuni operazioni. Tuttavia, con l'evoluzione del linguaggio molte di queste operazioni possono essere svolte senza nessun aiuto esterno, vediamone qualche esempio.
Per creare un array di N elementi spesso si ricorre all'utilizzo di un ciclo che consente di inserire una data quantità di elementi. Per raggiungere lo stesso scopo possiamo utilizzare i metodi fill e from
// Creo un array con 3 '0' // [0,0,0] Array(3).fill(0) Array.from(Array(3),()=>0) // utilizzo l'index per creare un array con numeri crescenti // [1,2,3] Array.from(Array(3),(_,index)=>index) // array con numeri casuali Array.from(Array(3),Math.random)
Prendendo come riferimento l'ultimo array, se volessimo avere il penultimo elemento dovremmo usare la lunghezza dell'array e da questa togliere 2. Usando il metodo at, possiamo arrivare allo stesso risultato utilizzando un indice negativo.
console.log(array[array.length -2]) console.log(array.at(-2))
Nel momento in cui poi andiamo a modificare un elemento della lista, inserendo in questo caso un numero con molte cifre, possiamo utilizzare il carattere _ come separatore visivo, che a livello di codice non è interpretato, rendendo lo stesso molto più leggibile.
array[2]= 10000000; array[2]= 10_000_000;
Durante la creazione di un array con numeri casuali può capitare di trovare dei doppioni. Per eliminarli si potrebbe creare un doppio loop sull'array: per ogni elemento scorre la lista alla ricerca di uno simile, seppur funzionale possiamo far uso dell'oggetto Set.
let array = [1, 2, 1]; let array1 = new Set(array); // [1,2]
A volte abbiamo la necessità di convertire un array in un oggetto o viceversa. Le operazioni richiedono l'utilizzo di un ciclo che iterando su ogni elemento o proprietà, converte la tipologia di oggetto. Entrambe le operazioni possono essere scritte in una sola riga.
// da array ad oggetto let arr = [1, 2, 3]; let arrObject = {}; for (let i = 0; i < arr.length; ++i) { arrObject<i> = arr<i>; } let arrObject = {...arr}; // {0:1,1:2,2:3} // da oggetto ad array let number = { one: 1, two: 2, }; let keys = []; for (let numbers in numbers) { if (number.hasOwnProperty(number)) { keys.push(number); } } // [ 'one', 'two' ] let key = Object.keys(number); // key = [ 'one', 'two' ] let value = Object.values(number); // value = [ 1, 2 ] let entry = Object.entries(number); // entry = [['one' : 1], ['two' : 2]]
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Disabilitare automaticamente un workflow di GitHub
Evitare la script injection nelle GitHub Actions
Potenziare Azure AI Search con la ricerca vettoriale
Gestire la cancellazione di una richiesta in streaming da Blazor
Proteggere le risorse Azure con private link e private endpoints
Miglioramenti nell'accessibilità con Angular CDK
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Generare la software bill of material (SBOM) in GitHub
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Ottenere un token di accesso per una GitHub App
Assegnare un valore di default a un parametro di una lambda in C#
Configurare il nome della run di un workflow di GitHub in base al contesto di esecuzione