Table des matières
Syntaxe" >Syntaxe
Tableaux" >Tableaux
Carte
" >Carte
Set" >Set
String" >String
Objet Arguments" >Objet Arguments
Générateurs" >Générateurs
Les objets ordinaires ne sont pas itérables " >Les objets ordinaires ne sont pas itérables
for...ofpour...de vs.for...in " >for...ofpour...de vs.for...in
总结" >总结
Maison interface Web js tutoriel En savoir plus sur les boucles for...of en JS

En savoir plus sur les boucles for...of en JS

Oct 12, 2020 pm 05:42 PM
javascript

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.

En savoir plus sur les boucles for...of en JS

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
}
Copier après la connexion
  • 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
Copier après la connexion

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. MapL'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
Copier après la connexion

Set

Set vous permet de stocker des valeurs uniques de tout type, qui peuvent être des valeurs ou des objets primitifs. SetLes objets ne sont que des collections de valeurs. SetL'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
Copier après la connexion

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"
Copier après la connexion

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
Copier après la connexion

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"
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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...ofLes 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);
}
Copier après la connexion

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
Copier après la connexion

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

Toutes les propriétés énumérables de l'objet seront parcourues dans la boucle.

Array.prototype.newArr = () => {};
Array.prototype.anotherNewArr = () => {};
const array = [&#39;foo&#39;, &#39;bar&#39;, &#39;baz&#39;];
for (const value in array) { 
    console.log(value);
}
// Outcome:
// => 0
// => 1
// => 2
// => newArr
// => anotherNewArr
Copier après la connexion
for...innewArr 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 = [&#39;foo&#39;, &#39;bar&#39;, &#39;baz&#39;];
for (const value of array) { 
    console.log(value);
}
// Outcome:
// => foo
// => bar
// => baz
Copier après la connexion

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 pm 02:54 PM

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 mettre en œuvre des systèmes de surveillance en temps réel WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel Dec 17, 2023 pm 05:30 PM

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 mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 am 09:39 AM

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.

Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Dec 17, 2023 pm 12:09 PM

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 : créer un système efficace de prévisions météorologiques en temps réel JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel Dec 17, 2023 pm 05:13 PM

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 simple : Comment obtenir le code d'état HTTP Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Jan 05, 2024 pm 06:08 PM

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

Comment obtenir facilement le code d'état HTTP en JavaScript Comment obtenir facilement le code d'état HTTP en JavaScript Jan 05, 2024 pm 01:37 PM

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

Comment utiliser insertBefore en javascript Comment utiliser insertBefore en javascript Nov 24, 2023 am 11:56 AM

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é).

See all articles