Nelle Single Page Application spesso si ha l'esigenza di eseguire calcoli o raggruppamenti sui dati provenienti dal server. In questi casi possiamo usare la libreria LINQ.js. In questo script ci occupiamo di raggruppare una lista di persone in base al lavoro e di calcolarne la media dello stipendio.
var people = [ { name: "Mario rossi", job: "Manager", salary: 100 }, { name: "Paolo verdi", job: "Dipendente", salary: 30 }, { name: "Luca Bianchi", job: "Tuttofare", salary: 30 }, { name: "Giovanna Marchi", job: "Segretaria", salary: 20 }, { name: "Manuele Esposito", job: "Dipendente", salary: 35 }, { name: "Alessandro Rossini", job: "Tuttofare", salary: 40 } ]; var result = Enumerable.From(people) .GroupBy(function (person) { return person.job }, function (person) { return { Job: person.job, Salary: person.salary } }, function (job, grouping) { return { Job: job, TotalSalary: grouping.Average(function (item) { return item.Salary; }) } } ) .ToArray();
Nel primo step dell'esempio creiamo un oggetto Enumerable dalla lista di persone così da inizializzare LINQ.js. Sucessivamente, usiamo il metodo GroupBy per raggruppare le persone. Il primo parametro del metodo GroupBy è un metodo che definisce in base a quale proprietà raggruppare gli oggetti (job nel nostro caso). Il secondo parametro è il metodo che definisce un oggetto da ritornare per ogni gruppo. Il terzo parametro è sempre un metodo che viene richiamato per ogni gruppo creato e restituisce il risultato finale che viene assegnato alla variabile result.
Sebbene la sintassi sia inizialmente complessa, una volta presa dimestichezza con questa libreria eseguire calcoli in Javascript diventa molto semplice.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Potenziare la ricerca su Cosmos DB con Full Text Search
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Gestione degli eventi nei Web component HTML
Proteggere le risorse Azure con private link e private endpoints
Recuperare le subissue e il loro stato di completamento in GitHub
Utilizzare l'espressione if inline in una pipeline di Azure DevOps
Gestione degli stili CSS con le regole @layer
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
Montare Azure Blob Storage su Linux con BlobFuse2
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Ridurre il reflow ottimizzando il CSS
Conoscere il rendering Server o WebAssembly a runtime in Blazor
I più letti di oggi
- Utilizzare il pattern matching per semplificare le espressioni
- Utilizzare requestAnimationFrame per animazioni fluide
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Utilizzare WebJobs su Linux con Azure App Service
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!