Comprensione delle funzioni di ordine superiore in JavaScript
CasaCasa > Notizia > Comprensione delle funzioni di ordine superiore in JavaScript

Comprensione delle funzioni di ordine superiore in JavaScript

Aug 17, 2023

Scopri quanto possono essere flessibili le funzioni JavaScript e come utilizzarle per creare codice flessibile e riutilizzabile.

JavaScript è un linguaggio potente supportato dalla maggior parte dei browser moderni ed è un'ottima scelta per i principianti.

Proprio come molti altri linguaggi di programmazione moderni, JavaScript supporta funzioni che consentono di isolare un blocco di codice e riutilizzarlo altrove. Puoi anche utilizzare funzioni di assegnazione alle variabili e passarle come parametri, come altri valori.

La definizione più semplice di funzione di ordine superiore è una funzione che esegue operazioni su altre funzioni accettandole come parametri o restituendole. Le funzioni di ordine superiore sono ampiamente utilizzate nel paradigma di programmazione funzionale. Se hai appena iniziato con JavaScript, le funzioni di ordine superiore potrebbero essere un po' difficili da comprendere.

Considera il seguente esempio:

Nel blocco di codice sopra, il filetrasformarela funzione è una funzione di ordine superiore che comprende ileccfunzione come parametro e restituisce una funzione anonima che accettavettorecome parametro.

Lo scopo deltrasformare la funzione è modificare gli elementi nell'array. Innanzitutto, il codice definisce una variabilerisultatoArraye lo lega a un array vuoto.

ILtrasformarefunzione restituisce una funzione anonima che scorre ogni elemento invettore, quindi passa l'elemento aeccfunzione per il calcolo e inserisce il risultatorisultatoArray . Dopo il completamento del ciclo, la funzione anonima restituisce il filerisultatoArray.

Il blocco di codice sopra assegna la funzione anonima restituita datrasformarefunzione alla variabile costantefunzione1.eccrestituisce il prodotto diXche è un sostituto dimatrice[i].

Il codice passa anche un array come parametrofunzione1 e quindi registra il risultato sulla console. Un modo più breve di scriverlo sarebbe:

JavaScript ha una funzione incorporata di ordine superiore che sostanzialmente fa la stessa cosa ditrasformare, di cui parleremo più avanti.

Si spera che tu stia iniziando a capire come funzionano le funzioni di ordine superiore in JavaScript. Dai un'occhiata alla seguente funzione e vedi se riesci a indovinare cosa fa.

Questo blocco di codice definisce una funzione che fa ciò che potresti sospettare: controlla gli elementi nell'array che soddisfano una determinata condizione e li trasforma contrasformare() funzione. Per utilizzare questa funzione, fai qualcosa del genere:

non mi piace iltrasformarefunzione, IlfilterAndTransformLa funzione accetta due funzioni come parametri:eccEcondizione . ILcondizione la funzione controlla se il parametro passato è un numero pari e restituisce true. Altrimenti restituisce false.

Secondizionesi risolve in true (la condizione è soddisfatta), solo allora iltrasformare funzione chiamata. Questa logica potrebbe tornare utile se stai lavorando con un array e desideri trasformare determinati elementi. Se esegui questo codice nella console del browser, dovresti ottenere la seguente risposta:

Puoi vedere che la funzione trasforma solo gli elementi che soddisfano una determinata condizione, lasciando così come sono gli elementi che non soddisfano la condizione.

I metodi degli array come map() sono funzioni di ordine superiore che semplificano la manipolazione degli array. Ecco come funziona.

Quando acceditrasformatoArraynella console del browser, dovresti ottenere lo stesso risultato ottenuto con il filetrasformarefunzione menzionata prima:

array.map() accetta due parametri, il primo parametro si riferisce all'elemento stesso, mentre il secondo parametro si riferisce all'indice dell'elemento (posizione nell'array). Con solo