Quand j'écrivais du code aujourd'hui, lorsque j'ai utilisé une boucle for-in pour parcourir le tableau, des choses inexplicables sont apparues plus tard. Ce n’est qu’à ce moment-là que j’ai connu la différence entre une boucle for-in et une boucle for.
La boucle for -in est une itération. Elle parcourt tous les attributs et méthodes de l'objet actuel. Elle filtrera les attributs et méthodes initialement écrits par le système. Pendant le for-in, ces propriétés et méthodes que nous avons ajoutées seront parcourues.
Par exemple : j'ai ajouté une méthode au tableau en js
//Array中的prototype方法就是给所有的数组都添加了一个新定义的方法名字为unique Array.prototype.unique = function(){ alert("unique"); } var arr = [0,1,2];
Ensuite, lorsque le code ci-dessus sera exécuté, cette méthode sera ajoutée à tous les tableaux. Ainsi, lors de l'utilisation de la boucle for-in, cette fonction sera également parcourue.
for(var i in arr){ concole.log(arr[i]); }
Le résultat de l'impression à ce moment est
Si vous ne souhaitez pas parcourir vos propres méthodes définies, le système fournit une méthode pour déterminer si l'attribut actuel est ajouté ultérieurement à la place de celui d'origine du système : array.hasOwnProperty(i)
Si le code ci-dessus ne souhaite pas imprimer une méthode personnalisée, vous pouvez alors juger cette chose
for(var i in arr){ if(!arr.hasOwnProperty(i)){ continue; } console.log(arr[i]); }
Utilisez cette méthode pour juger si i est un attribut nouvellement ajouté ou une méthode nouvellement ajoutée plus tard. un, puis sautez. Ensuite, passez à l'étape suivante.
Bien sûr, s'il s'agit d'un tableau, il vaut mieux ne pas utiliser de boucle for - in pour le parcourir. Il est préférable d'utiliser une boucle for pour l'écrire, afin d'éviter des erreurs inutiles. problème
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!