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!
javascript map array
Commentami!