L'unica differenza che vedo in map e foreach è che map
restituisce un array e forEach
non lo è. Tuttavia, non capisco nemmeno l'ultima riga del forEach
metodo " func.call(scope, this[i], i, this);
". Ad esempio, non è " this
" e " scope
", riferendosi al medesimo oggetto e non è this[i]
e i
facendo riferimento al valore di corrente nel circuito?
Ho notato che in un altro post qualcuno diceva "Usa forEach
quando 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.
map
eforEach
? Tutto ciò che ottengo da Google sono le specifiche di utilizzo e i tutorial.