•principe:
• Le navigateur avancé prend en charge la méthode FORESC
Syntaxe: paramètres ForEach et Map Support 2: L'un est la fonction de rappel (élément, index, liste) et contexte;
• Foreach: utilisé pour itérer chaque élément du tableau; Cette exécution de méthode n'a aucune valeur de retour et n'a aucun effet sur le tableau d'origine;
• Il y a plusieurs éléments dans le tableau, de sorte que la fonction de rappel anonyme transmise doit être exécutée plusieurs fois;
• Chaque fois qu'une fonction anonyme est exécutée, trois valeurs de paramètres y sont également transmises: l'élément actuel dans le tableau, l'index d'index de l'élément actuel et l'entrée du tableau d'origine;
• Théoriquement, cette méthode ne renvoie pas de valeur, elle traverse simplement chaque élément du tableau et ne modifie pas le tableau d'origine; Mais nous pouvons modifier le tableau d'origine par nous-mêmes via l'indice du tableau;
• Ceci dans la méthode foreach est ARY, et cela dans la fonction de rappel anonyme est la fenêtre par défaut;
var ary = [12,23,24,42,1]; var res = ary.ForEach (function (item, index, input) {entrée [index] = item * 10;}) console.log (res); // -> indéfini; console.log (ary); // -> modifiera le tableau d'origine;• Carte: est très similaire à Forach. Il est habitué à parcourir la valeur de chaque élément dans un tableau et à parcourir chaque élément dans un tableau;
• Différence: la valeur de retour de retour est prise en charge dans la fonction de rappel MAP; Ce qui est le retour équivaut à la modification de cet élément dans le tableau à pourquoi (il n'affecte pas le tableau d'origine, il est tout simplement équivalent à cloner une copie du tableau d'origine et à modifier les éléments correspondants dans le tableau cloné);
• Chaque ou la carte prend en charge la deuxième valeur de paramètre. Le deuxième paramètre signifie modifier cela dans la fonction de rappel anonyme.
var ary = [12,23,24,42,1]; var res = ary.map (fonction (item, index, entrée) {return item * 10;}) console.log (res); // -> [120,230,240,420,10]; console.log (Ary); // -> [12,23,42,42,1]• Méthode d'écriture compatible:
• Qu'il s'agisse de FOREAK ou de cartographie dans IE6-8 (il n'y a pas deux méthodes sur Array.Protype Lorsqu'il est incompatible), nous devons encapsuler les deux méthodes compatibles nous-mêmes, le code est le suivant:
/ *** ForEach Traversal Array * @param callback [fonction] Fonction de rappel; * Contexte @param [Object] Context; * / Array.prototype.myForEach = fonction myForEach (rappel, contexte) {context = context || fenêtre; if ('foreach' dans array.prototye) {this.ForEach (rappel, contexte); retour; } // Dans IE6-8, écrivez la logique pour l'exécution de la fonction de rappel par vous-même pour (var i = 0, len = this.length; i <len; i ++) {callback && callback.call (contexte, this [i], i, this); }} / *** MAP TRAVERSAL Array * @param callback [fonction] Fonction de rappel; * Contexte @param [Object] Context; * / Array.prototype.mymap = fonction mymap (callback, context) {context = context || fenêtre; if ('map' dans array.prototye) {return this.map (callback, context); } // IE6-8 Logic pour écrire l'exécution de la fonction de rappel par vous-même var newary = []; for (var i = 0, len = this.length; i <len; i ++) {if (typeof callback === 'function') {var val = callback.call (context, this [i], i, this); newary [newary.length] = val; }} return newary;}PS: S'il y a des erreurs dans la méthode d'écriture ci-dessus, veuillez la corriger, ^^
L'introduction ci-dessus à Array Traversal ForEach () et Map () et les méthodes d'écriture compatibles en JavaScript sont tout le contenu que je partage avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.