En savoir plus sur les boucles for...of en JS
Cet article vous donnera une compréhension approfondie de la boucle for...of en JavaScript. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.
La boucle créée par l'instruction for...of peut traverser des objets. Le for...of introduit dans ES6 peut remplacer les deux autres instructions de boucle for...in et forEach(), et cette nouvelle instruction de boucle prend en charge le nouveau protocole d'itération. for...of vous permet de parcourir des structures de données itérables, telles que des tableaux, des chaînes, des cartes, des ensembles, etc.
Syntaxe
for (variable of iterable) { statement }
variable : La valeur d'attribut de chaque itération est affectée à la variable
itérable : un objet qui a des propriétés énumérables et peut être itéré
Illustrons à l'aide de quelques exemples.
Tableaux
Les tableaux sont de simples listes qui ressemblent à des objets. Le prototype du tableau dispose de diverses méthodes qui permettent d'effectuer des opérations dessus, telles que le parcours. L'exemple suivant utilise for...of pour parcourir un tableau :
const iterable = ['mini', 'mani', 'mo']; for (const value of iterable) { console.log(value); } // Output: // => mini // => mani // => mo
Le résultat est d'imprimer chaque valeur du tableau iterable
.
Carte
Map
l'objet contient key-value
paires. Les objets et les valeurs primitives peuvent être traités comme un key
ou un value
. Map
L'objet traverse les éléments selon la manière dont ils sont insérés. En d'autres termes, for...of
renvoie un tableau de kay-value
paires à chaque itération. L'objet
const iterable = new Map([['one', 1], ['two', 2]]); for (const [key, value] of iterable) { console.log(`Key: ${key} and Value: ${value}`); } // Output: // => Key: one and Value: 1 // => Key: two and Value: 2
Set
Set
vous permet de stocker des valeurs uniques de tout type, qui peuvent être des valeurs ou des objets primitifs. Set
Les objets ne sont que des collections de valeurs. Set
L'itération des éléments est basée sur l'ordre d'insertion et ne peut se produire qu'une seule fois pour chaque valeur. Si vous créez un Set
avec le même élément plusieurs fois, il est toujours considéré comme un seul élément.
const iterable = new Set([1, 1, 2, 2, 1]); for (const value of iterable) { console.log(value); } // Output: // => 1 // => 2
Bien que le Set
que nous avons créé ait plusieurs 1
et 2
, la sortie de traversée n'est que 1
et 2
.
String
String est utilisé pour stocker des données sous forme de texte.
const iterable = 'javascript'; for (const value of iterable) { console.log(value); } // Output: // => "j" // => "a" // => "v" // => "a" // => "s" // => "c" // => "r" // => "i" // => "p" // => "t"
Ici, parcourez la chaîne et imprimez les caractères à chaque index (index
).
Objet Arguments
Pensez à un objet argument comme un objet de type tableau correspondant aux arguments passés à la fonction. Voici un cas d'utilisation :
function args() { for (const arg of arguments) { console.log(arg); } } args('a', 'b', 'c'); // Output: // => a // => b // => c
Vous vous demandez peut-être : qu'est-ce qui se passe ? Comme je l'ai déjà dit, lorsqu'une fonction est appelée, les paramètres reçoivent tous les arguments transmis à la fonction args()
. Donc, si nous passons des arguments 20
à la fonction args()
, nous afficherons des arguments 20
.
Effectuez quelques ajustements en vous basant sur l'exemple ci-dessus, comme passer un objet, un tableau et une fonction à la fonction args()
:
function fn(){ return 'functions'; } args('a', 'w3cplus', 'c',{'name': 'airen'},['a',1,3],fn()); // Output: // => "a" // => "w3cplus" // => "c" // => Object { // => "name": "airen" // => } // => Array [ // => "a", // => 1, // => 3 // => ] // => "functions"
Générateurs
Un générateur est une fonction qui peut être quittée et réactivée ultérieurement.
function* generator(){ yield 1; yield 2; yield 3; }; for (const g of generator()) { console.log(g); } // Output: // => 1 // => 2 // => 3
function* définit une fonction génératrice qui renvoie un objet générateur. Pour plus d'informations sur le générateur, vous pouvez cliquer ici .
Fermer l'itérateur
JavaScript fournit quatre méthodes connues pour terminer les boucles : break
, continue
, return
et throw
. Regardons un exemple :
const iterable = ['mini', 'mani', 'mo']; for (const value of iterable) { console.log(value); break; } // Output: // => mini
Dans cet exemple, nous utilisons le mot-clé break
pour terminer une boucle et n'en imprimer qu'un seul mini
.
Les objets ordinaires ne sont pas itérables
for...of
Les boucles ne peuvent fonctionner qu'avec itération. Mais les objets ordinaires ne sont pas itérables. Voyons :
const obj = { fname: 'foo', lname: 'bar' }; for (const value of obj) { // TypeError: obj[Symbol.iterator] is not a function console.log(value); }
Ici, nous définissons un objet normal obj
Lorsque nous essayons de for...of
opérer sur obj
, une erreur sera signalée : TypeError: obj[Symbol.iterator] is not a function
.
Nous pouvons convertir un objet de type tableau en tableau. L'objet aura l'attribut length
et ses éléments pourront être indexés. Regardons un exemple : la méthode
const obj = { length: 3, 0: 'foo', 1: 'bar', 2: 'baz' }; const array = Array.from(obj); for (const value of array) { console.log(value); } // Output: // => foo // => bar // => baz
Array.from()
crée une nouvelle instance de tableau à partir d'un objet de type tableau (Array-lik) ou itérable.
<code><span style="font-size: 20px;">for...of</span>
pour...de vs.for...in
for...in
Array.prototype.newArr = () => {}; Array.prototype.anotherNewArr = () => {}; const array = ['foo', 'bar', 'baz']; for (const value in array) { console.log(value); } // Outcome: // => 0 // => 1 // => 2 // => newArr // => anotherNewArr
for...in
newArr
peut non seulement énumérer les valeurs déclarées dans le tableau, il peut également trouver des propriétés de non-énumération héritées du prototype du constructeur, telles que anotherNewArr
et dans le exemple ci-dessus et imprimez-les. <🎜>for...of
可以对数组和对象等做更具体的操作,但并不表示包括所有对象。
注意:任何具有Symbol.iterator
属性的元素都是可迭代的。
Array.prototype.newArr = function() {}; const array = ['foo', 'bar', 'baz']; for (const value of array) { console.log(value); } // Outcome: // => foo // => bar // => baz
for...of
不考虑构造函数原型的不可枚举属性。它只需要查找可枚举属性并将其打印出来。
总结
理解for...of
循环在开发过程中的用法,可以节省很多时间。希望本文能帮助您理解和编写JavaScript开发中的更好的循环结构。从而让你编码更快乐!
相关免费学习推荐:js视频教程
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de reconnaissance vocale en ligne Introduction : Avec le développement continu de la technologie, la technologie de reconnaissance vocale est devenue une partie importante du domaine de l'intelligence artificielle. Le système de reconnaissance vocale en ligne basé sur WebSocket et JavaScript présente les caractéristiques d'une faible latence, d'un temps réel et d'une multiplateforme, et est devenu une solution largement utilisée. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de reconnaissance vocale en ligne.

WebSocket et JavaScript : technologies clés pour réaliser des systèmes de surveillance en temps réel Introduction : Avec le développement rapide de la technologie Internet, les systèmes de surveillance en temps réel ont été largement utilisés dans divers domaines. L'une des technologies clés pour réaliser une surveillance en temps réel est la combinaison de WebSocket et de JavaScript. Cet article présentera l'application de WebSocket et JavaScript dans les systèmes de surveillance en temps réel, donnera des exemples de code et expliquera leurs principes de mise en œuvre en détail. 1. Technologie WebSocket

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de réservation en ligne. À l'ère numérique d'aujourd'hui, de plus en plus d'entreprises et de services doivent fournir des fonctions de réservation en ligne. Il est crucial de mettre en place un système de réservation en ligne efficace et en temps réel. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de réservation en ligne et fournit des exemples de code spécifiques. 1. Qu'est-ce que WebSocket ? WebSocket est une méthode full-duplex sur une seule connexion TCP.

Introduction à l'utilisation de JavaScript et de WebSocket pour mettre en œuvre un système de commande en ligne en temps réel : avec la popularité d'Internet et les progrès de la technologie, de plus en plus de restaurants ont commencé à proposer des services de commande en ligne. Afin de mettre en œuvre un système de commande en ligne en temps réel, nous pouvons utiliser les technologies JavaScript et WebSocket. WebSocket est un protocole de communication full-duplex basé sur le protocole TCP, qui peut réaliser une communication bidirectionnelle en temps réel entre le client et le serveur. Dans le système de commande en ligne en temps réel, lorsque l'utilisateur sélectionne des plats et passe une commande

JavaScript et WebSocket : Construire un système efficace de prévisions météorologiques en temps réel Introduction : Aujourd'hui, la précision des prévisions météorologiques revêt une grande importance pour la vie quotidienne et la prise de décision. À mesure que la technologie évolue, nous pouvons fournir des prévisions météorologiques plus précises et plus fiables en obtenant des données météorologiques en temps réel. Dans cet article, nous apprendrons comment utiliser la technologie JavaScript et WebSocket pour créer un système efficace de prévisions météorologiques en temps réel. Cet article démontrera le processus de mise en œuvre à travers des exemples de code spécifiques. Nous

Tutoriel JavaScript : Comment obtenir le code d'état HTTP, des exemples de code spécifiques sont requis Préface : Dans le développement Web, l'interaction des données avec le serveur est souvent impliquée. Lors de la communication avec le serveur, nous devons souvent obtenir le code d'état HTTP renvoyé pour déterminer si l'opération a réussi et effectuer le traitement correspondant en fonction de différents codes d'état. Cet article vous apprendra comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournira quelques exemples de codes pratiques. Utilisation de XMLHttpRequest

Introduction à la méthode d'obtention du code d'état HTTP en JavaScript : Dans le développement front-end, nous devons souvent gérer l'interaction avec l'interface back-end, et le code d'état HTTP en est une partie très importante. Comprendre et obtenir les codes d'état HTTP nous aide à mieux gérer les données renvoyées par l'interface. Cet article explique comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournit des exemples de code spécifiques. 1. Qu'est-ce que le code d'état HTTP ? Le code d'état HTTP signifie que lorsque le navigateur lance une requête au serveur, le service

Utilisation : En JavaScript, la méthode insertBefore() est utilisée pour insérer un nouveau nœud dans l'arborescence DOM. Cette méthode nécessite deux paramètres : le nouveau nœud à insérer et le nœud de référence (c'est-à-dire le nœud où le nouveau nœud sera inséré).
