Nello script #252 abbiamo visto come sia semplice estendere una classe JavaScript esistente utilizzando TypeScript. In quello script abbiamo aggiunto alla classe Array il metodo Distinct, mentre in questo script aggiungeremo il metodo SelectMany molto utilizzato nelle applicazioni .NET quando si manipolano gli array. Vediamo prima il codice.
declare global {
interface Array<T> {
selectMany<K>(callbackfn: (value: T, index: number, array: T[]) => K[], thisArg?: any): K[];
}
}
Array.prototype.selectMany = function (fn) {
return this.map(fn).reduce(function (x, y) { return x.concat(y); }, []);
};
La prima parte del codice rende il metodo SelectMany visibile a TypeScript, la seconda parte definisce il metodo nel prototype della classe Array. Il codice del metodo selectMany accetta in input una funzione che specifica quale proprietà dell'array originale vogliamo appiattire. Questa funzione viene passata al metodo map che torna un array con gli oggetti desiderati. Succesivamente il metodo reduce appiattisce l'array concatenando tra loro gli oggetti.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Effettuare la ricerca di testo nascosto in una pagina web con Javascript
Utilizzare AbortController per cancellare operazioni asincrone in JavaScript
Personalizzare i parametri del CSS Scroll Snap
Monitorare le tabelle di Azure SQL Database con Change Event Streaming
Keynote .NET Conference Italia 2025
Gestire pubblicazione Kubernetes tramite .NET Aspire
Recuperare gli audit log in Azure DevOps
Introduzione a GitHub Copilot CLI
Abilitare automaticamente il force push di un gruppo su Azure DevOps
Creare una file based app con C#
Raggruppare risorse in .NET Aspire
Ottimizzare gli indici con Automatic Index Compaction in Azure SQL Database




