JavaScript prend en charge différents types de boucles :
for - parcourt un bloc de code un certain nombre de fois
for/in - Parcourez les propriétés d'un objet
while - Parcourez le bloc de code spécifié lorsque la condition spécifiée est vraie
do/while - boucle également le bloc de code spécifié lorsque la condition spécifiée est vraie
1. opérateur in : L'opérande de gauche doit être une chaîne ou peut être converti en chaîne, et l'opérande de droite est un objet ou un tableau. Renvoie vrai si la valeur du côté gauche de cet opérateur est un nom de propriété de l'objet du côté droit.
Par exemple :
var point={x:1,y:2}; //对象直接量 var has_x="x" in point; //返回true var has_z="z" in point; //返回false var ts="toString" in point;//返回true,toString为继承方法
2. instruction for/in : syntaxe,
pour (variable dans l'objet)
déclaration ;
Fournit un moyen de parcourir les propriétés des objets.
Exemple :
for(var prop in my_object) { document.write("name:"+prop+";value:"+my_object[prop],"<br>"); }
Les tableaux JavaScript sont un type spécial d'objet, donc la boucle for/in peut énumérer les indices du tableau tout comme les propriétés de l'objet.
Vous pouvez copier tous les noms de propriétés d'un objet dans un tableau,
Exemple :
var o= {x:1,y:2,z:3}; var a=new Array(); var i=0; for (a[i++] in o) ;//空语句,用于初始化数组
3. L'opérateur in est différent de l'instruction for/in Le côté gauche de l'instruction for/in in peut être une instruction var qui déclare une variable, un élément d'un tableau ou un attribut d’un objet. Il ne peut pas être utilisé.
4. L'opérateur d'attribut d'accès couramment utilisé pour les tableaux est "[]" au lieu de ".". Utilisez "[]" pour nommer les valeurs de chaîne d'attribut, qui sont dynamiques et peuvent être modifiées au moment de l'exécution, au lieu d'un identifiant "."
Exemple :
var stock_name= get_stock_name_from_user();//从用户处获取股票名 var share= get_number_of_shares();//得到股票数量 portfolio[stock_name]= share;//动态地创建数组股票,并为每支股票赋值 将该例子与for/in循环一起使用,当用户输入了他的投资组合,可以计算当前总值 var value= 0; for (stock in portfolio) { value +=get_share_value(stock)*portfolio[stock]; }
Dépôts et retraits d'actions le nom de chaque action.
Portfolio[stock] dépose et retire la quantité de chaque stock.
boucle for-in
Fonction : parcourir les attributs d'objet et extraire à la fois les noms d'attribut et les valeurs d'attribut
var obj = { "key1":"value1", "key2":"value2", "key3":"value3" }; function EnumaKey(){ for(var key in obj ){ alert(key); } } function EnumaVal(){ for(var key in obj ){ alert(obj[key]); } } EnumaKey(obj) //key1 key2 key3 EnumaVal(obj) //value1 value2 value3
Les tableaux peuvent également être parcourus de cette manière, mais ce n'est pas recommandé car l'ordre ne peut pas être garanti, et si un attribut est ajouté au prototype de Array, cet attribut sera également parcouru.
Les boucles For-in doivent être utilisées pour parcourir des objets non-tableaux. L'utilisation de for-in to loop est également appelée « énumération ».
Techniquement, vous pouvez utiliser une boucle for-in sur un tableau (car les tableaux sont des objets en JavaScript), mais cela n'est pas recommandé. Car si l'objet tableau a été amélioré avec des fonctions personnalisées, des erreurs logiques peuvent survenir. De plus, dans for-in, l'ordre (séquence) de la liste d'attributs n'est pas garanti. Il est donc préférable d'utiliser une boucle for normale pour les tableaux et une boucle for-in pour les objets.