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
Utilizzo delle Feature flag in ASP.NET Core
Ottimizzare le API in ASP.NET con Feature Flags
Ottimizzare la content-visibility in CSS specificando lo spazio da occupato dall'area non renderizzata
Semplificare la gestione dei modelli con Azure AI Foundry Model Router
Centralizzare e governare MCP server e Skill con Azure API Center
Utilizzare i command service nei test con .NET Aspire
Ridimensionamento automatico input tramite CSS
Utilizzare le direttive più importanti in una file based app .NET
Utilizzare noopener e noreferrer nei link HTML
Ricerca delle GitHub issue tramite operatori logici
Le cron expression di un workflow di GitHub
Ciclo di vita risorse con .NET Aspire


