La seule différence que je vois dans map et foreach est que map
renvoie un tableau et forEach
ne l'est pas. Cependant, je ne comprends même pas la dernière ligne de la forEach
mé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 i
référant à la valeur actuelle dans la boucle?
J'ai remarqué dans un autre message que quelqu'un a dit "À utiliser forEach
lorsque 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.
map
etforEach
? Tout ce que j'obtiens de Google, ce sont des spécifications d'utilisation et des didacticiels.