La seule différence que je vois dans map et foreach est que maprenvoie un tableau et forEachne l'est pas. Cependant, je ne comprends même pas la dernière ligne de la forEachméthode " func.call(scope, this[i], i, this);". Par exemple, n'est pas « this» et « scope» se référant à un même objet et n'est pas this[i]et se iréférant à la valeur actuelle dans la boucle?
J'ai remarqué dans un autre message que quelqu'un a dit "À utiliser forEachlorsque vous voulez faire quelque chose sur la base de chaque élément de la liste. Vous pourriez ajouter des éléments à la page, par exemple. Essentiellement, c'est génial lorsque vous voulez des" effets secondaires ". Je ne sais pas ce que l'on entend par effets secondaires.
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);
}
}
Enfin, y a-t-il de réelles utilisations de ces méthodes en javascript (puisque nous ne mettons pas à jour une base de données) autre que de manipuler des nombres comme celui-ci:
alert([1,2,3,4].map(function(x){ return x + 1})); //this is the only example I ever see of map in javascript.
Merci pour toute réponse.
mapetforEach? Tout ce que j'obtiens de Google, ce sont des spécifications d'utilisation et des didacticiels.