Le parcours de tableaux utilise généralement une boucle for. Si vous utilisez ES5, vous pouvez également utiliser forEach ES5 a les fonctions de parcours de tableaux telles que map, filter, some, each, réduire, réduireRight, etc., mais leurs résultats renvoient. sont différents. Cependant, si vous utilisez foreach pour parcourir le tableau, vous ne pouvez pas interrompre la boucle en utilisant break et vous ne pouvez pas revenir à la fonction externe en utilisant return.
Array.prototype.method=function(){ console.log(this.length); } var myArray=[1,2,4,5,6,7] myArray.name="数组" for (var index in myArray) { console.log(myArray[index]); }
L'utilisation de for in peut également parcourir le tableau, mais il y aura les problèmes suivants :
1. L'index est un nombre de chaîne et ne peut pas effectuer directement d'opérations géométriques
2. L'ordre de parcours peut ne pas être conforme à l'ordre interne du tableau réel
3. L'utilisation de for in parcourra toutes les propriétés énumérables du tableau, y compris les prototypes. Par exemple, la méthode prototype et l'attribut name de Shangli sont
, donc for in est plus approprié pour parcourir des objets. Ne pas utiliser for in pour parcourir des tableaux.
Donc, en plus d'utiliser une boucle for, comment pouvons-nous parcourir le tableau plus simplement et correctement pour répondre à nos attentes (c'est-à-dire sans parcourir la méthode et le nom), le for of dans ES6 est encore meilleur.
Array.prototype.method=function(){ console.log(this.length); } var myArray=[1,2,4,5,6,7] myArray.name="数组"; for (var value of myArray) { console.log(value); }
Rappelez-vous que for in parcourt l'index (c'est-à-dire le nom de la clé) du tableau, tandis que for of parcourt les valeurs des éléments du tableau.
for of parcourt uniquement les éléments du tableau, mais n'inclut pas la méthode d'attribut prototype et le nom d'index du tableau
Lors de la traversée d'un objet, for in est généralement utilisé pour parcourir la clé nom de l'objet
Object.prototype.method=function(){ console.log(this); } var myObject={ a:1, b:2, c:3 } for (var key in myObject) { console.log(key); }
pour in peut accéder à la méthode prototype de myObject. Si vous ne souhaitez pas parcourir la méthode prototype et les propriétés, vous pouvez la juger dans la boucle. peut déterminer si une certaine propriété est une propriété d'instance de l'objet
for (var key in myObject) { if(myObject.hasOwnProperty(key)){ console.log(key); } }
Vous pouvez également utiliser Object.keys(myObject) d'ES5 pour obtenir un tableau de propriétés d'instance d'un objet, à l'exclusion des méthodes et propriétés prototypes.
Object.prototype.method=function(){ console.log(this); } var myObject={ a:1, b:2, c:3 } Object.keys(myObject).forEach(function(key,index){<br> console.log(key,myObject[key])<br>})
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!