Creare una funzione map in Javascript

Mattepuffo's logo
Creare una funzione map in Javascript

Creare una funzione map in Javascript

In questo articolo vediamo come creare un clone della funzione map di Javascript.

Non che ce ne sia bisogno, è più un esercizio per capire meglio il funzionamento.

La funzione map in pratica fa questo:

  • legge l'array (anche array di oggetti)
  • applica la funzione a tutti gli elementi
  • restituisce un nuovo array trasformato

Partendo da questo vediamo come possiamo fare:

Array.prototype.myMap = function (callback, args) {
    if (typeof callback !== "function") {
        throw new TypeError(`La funzione ${callback} non esiste`);
    }

    const result = [];
    for (let i = 0; i < this.length; i++) {
        if (i in this) {
            result[i] = callback.call(args, this[i], i, this);
        }
    }

    return result;
};

console.log([1, 2, 3].myMap(x => x + 1));

const persone = [
    {nome: 'nome1', cognome: 'cognome1'},
    {nome: 'nome2', cognome: 'cognome2'},
];

const mapUnione = persone.myMap(item => {
    return `${item.nome} ${item.cognome}`;
});

console.log(mapUnione);

Array.prototype è un oggetto prototipo da cui tutti gli array ereditano metodi e proprietà, e ci permette di estenderne le funzionalità creando nuovi metodi condivisi.

Non saprei spiegarlo molto meglio....

Enjoy!


Condividi

Commentami!