In base a snippet JSPerf (e alcuni altri), l'implementazione di default map()
di JavaScript è più lento del 21% rispetto all'utilizzo di for
di base.
Esaminandoilmap()
è così lento.
Polyfill strange part
line 15: var O = Object(this);
L'oggetto iniziale viene convertito (e duplicato) in un oggetto JavaScript.
line 42: while (k < len) {
A destra, a partire da 0, itera su tutta la lunghezza dell'array, sembra legittimo!
line 52: if (k in O) {
Questo è il punto. Questo controllo è così lento e viene ripetuto per ogni operazione. L'operazione in
può utilizzare una ricerca sequenziale nell'array, che è così lenta e influenza le prestazioni globali.
L'iterazione su un array da 0 a array.length non implica di controllare, ogni volta, se l'indice esiste.
Perché questo controllo è utile?