L'unica differenza che vedo in map e foreach è che maprestituisce un array e forEachnon lo è. Tuttavia, non capisco nemmeno l'ultima riga del forEachmetodo " func.call(scope, this[i], i, this);". Ad esempio, non è " this" e " scope", riferendosi al medesimo oggetto e non è this[i]e ifacendo riferimento al valore di corrente nel circuito?
Ho notato che in un altro post qualcuno diceva "Usa forEachquando vuoi fare qualcosa sulla base di ogni elemento della lista. Potresti aggiungere cose alla pagina, per esempio. Essenzialmente, è ottimo per quando vuoi" effetti collaterali ". Non so cosa si intenda per effetti collaterali.
Array.prototype.map = function(fnc) {
var a = new Array(this.length);
for (var i = 0; i < this.length; i++) {
a[i] = fnc(this[i]);
}
return a;
}
Array.prototype.forEach = function(func, scope) {
scope = scope || this;
for (var i = 0, l = this.length; i < l; i++) {
func.call(scope, this[i], i, this);
}
}
Infine, ci sono usi reali per questi metodi in javascript (poiché non stiamo aggiornando un database) oltre a manipolare numeri in questo modo:
alert([1,2,3,4].map(function(x){ return x + 1})); //this is the only example I ever see of map in javascript.
Grazie per qualsiasi risposta.
mapeforEach? Tutto ciò che ottengo da Google sono le specifiche di utilizzo e i tutorial.