Maison > interface Web > js tutoriel > le corps du texte

Traversée de boucle de tableau Javascript (explication détaillée forEach)

亚连
Libérer: 2018-05-19 14:17:08
original
9115 Les gens l'ont consulté

Cet article présente principalement l'explication détaillée du parcours de boucle de tableau forEach pour Javascript. Il est très utile pour apprendre forEach. Si vous en avez besoin, vous pouvez en savoir plus.

Parcours de boucle de tableau 1.js.

Variable de boucle de tableau, la première chose qui me vient à l'esprit est for(var i=0;i

De plus, vous pouvez également utiliser la méthode forEach plus simple

fonction 2.forEach.

Les types Array de Firefox et Chrome ont tous deux des fonctions forEach. Utilisez comme suit :

<!--Add by oscar999--> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
<HEAD> 
<TITLE> New Document </TITLE> 
<META NAME="Author" CONTENT="oscar999"> 
</HEAD> 
 
<BODY> 
<script> 
var arryAll = []; 
arryAll.push(1); 
arryAll.push(2); 
arryAll.push(3); 
arryAll.push(4); 

//匿名方式
arryAll.forEach(function(e){ 
  alert(e); 
}) 

function t1(arg){alert(arg);}
//非匿名方式
arryAll.forEach(t1,arryAll);

</script> 
</BODY> 
</HTML>
Copier après la connexion

Cependant, le code ci-dessus ne fonctionne pas correctement dans IE.

Parce que Array d'IE n'a pas cette méthode

alert(Array.prototype.forEach);
Copier après la connexion

L'exécution de la phrase ci-dessus entraînera "undefined", ce qui is On dit qu'Array n'a pas de méthode forEach dans IE.

3. Rendre IE compatible avec la méthode forEach

Étant donné que le tableau d'IE n'a pas de méthode forEach, nous y ajouterons manuellement cette méthode prototype.

//Array.forEach implementation for IE support.. 
//https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/forEach 
if (!Array.prototype.forEach) { 
  Array.prototype.forEach = function(callback, thisArg) { 
    var T, k; 
    if (this == null) { 
      throw new TypeError(" this is null or not defined"); 
    } 
    var O = Object(this); 
    var len = O.length >>> 0; // Hack to convert O.length to a UInt32 
    if ({}.toString.call(callback) != "[object Function]") { 
      throw new TypeError(callback + " is not a function"); 
    } 
    if (thisArg) { 
      T = thisArg; 
    } 
    k = 0; 
    while (k < len) { 
      var kValue; 
      if (k in O) { 
        kValue = O[k]; 
        callback.call(T, kValue, k, O); 
      } 
      k++; 
    } 
  }; 
}
Copier après la connexion

Pour une introduction détaillée, veuillez vous référer à :
https://developer.mozilla.org/en/JavaScript/Reference /Global_Objects/ Array/forEach

4. Comment sortir de la boucle ?

Js Dans ce cas, forEach ne peut pas utiliser continue, break; Vous pouvez utiliser les deux méthodes suivantes :

1. 🎜 >

2. Contrôle de l'instruction Return (return true ou return false)


En fait, return a une fonction similaire pour continuer


Ce qui suit Un exemple consiste à supprimer les multiples de 2 et 3 dans le tableau


<!--Add by oscar999--> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
<HEAD> 
<TITLE> New Document </TITLE> 
<META NAME="Author" CONTENT="oscar999"> 
</HEAD> 
 
<BODY> 
<script> 
if (!Array.prototype.forEach) { 
  Array.prototype.forEach = function(callback, thisArg) { 
    var T, k; 
    if (this == null) { 
      throw new TypeError(" this is null or not defined"); 
    } 
    var O = Object(this); 
    var len = O.length >>> 0; // Hack to convert O.length to a UInt32 
    if ({}.toString.call(callback) != "[object Function]") { 
      throw new TypeError(callback + " is not a function"); 
    } 
    if (thisArg) { 
      T = thisArg; 
    } 
    k = 0; 
    while (k < len) { 
      var kValue; 
      if (k in O) { 
        kValue = O[k]; 
        callback.call(T, kValue, k, O); 
      } 
      k++; 
    } 
  }; 
} 
 
var arryAll = []; 
arryAll.push(1); 
arryAll.push(2); 
arryAll.push(3); 
arryAll.push(4); 
arryAll.push(5);
arryAll.push(6); 
arryAll.push(7); 
 
 
var arrySpecial = []; 
 
arryAll.forEach(function(e){ 
  if(e%2==0) 
  { 
    arrySpecial.push(e); 
  }else if(e%3==0) 
  { 
    arrySpecial.push(e); 
  } 
}) 
 
</script> 
</BODY> 
</HTML>
Copier après la connexion

Utilisez le retour pour réaliser ; l'effet ci-dessus


arryAll.forEach(function(e){ 
  if(e%2==0) 
  { www.jb51.net
    arrySpecial.push(e); 
    return; 
  } 
  if(e%3==0) 
  {   
    arrySpecial.push(e); 
    return; 
  } 
})
Copier après la connexion

Quant à la façon d'écrire un effet similaire à break, aucune meilleure méthode n'a encore été trouvée.


Avis personnel : Que ce soit en syntaxe Java ou C#, forEach consiste à parcourir toutes les valeurs


J'ai cherché et certains ont dit que le retour false pouvait être obtenu. c'est un try , l'effet de return false est le même que celui de return, et l'effet de return true est le même.

Le code de test ci-dessous a été ajouté par moi-même.



var arryAll = []; 
arryAll.push(1); 
arryAll.push(2); 
arryAll.push(3); 
arryAll.push(4); 
arryAll.push(5);
arryAll.push(6);
arryAll.push(7);

arryAll.forEach(function(e){
alert(e);
if(e>3)
return false;
});
Copier après la connexion

Ce qui précède est ce que j'ai compilé pour vous. J'espère qu'il vous sera utile à l'avenir.

Articles associés :

Code js pour parcourir les propriétés des compétences object_javascript

Code js pour parcourir les instances DOM

Code js pour parcourir les attributs des objets

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!