Table des matières
Boucle For classique
Pour... dans Et Pour… de
.forEach boucle
结论
Maison interface Web js tutoriel Comprendre les 3 styles de boucle for en javascript et quand les utiliser

Comprendre les 3 styles de boucle for en javascript et quand les utiliser

Nov 26, 2020 pm 05:39 PM
for循环 javascript

Comprendre les 3 styles de boucle for en javascript et quand les utiliser

Lors de l'apprentissage d'un langage de développement, la boucle for est une syntaxe essentielle, et tous les développeurs l'utiliseront probablement. C'est tellement classique que chaque langage de développement inclut au moins une version de la syntaxe des boucles. Cependant, JavaScript contient trois syntaxes de boucles différentes (si vous y prêtez plus attention, cela peut être compté pour quatre).

La façon dont ils sont utilisés n'est pas exactement la même, par exemple :

l Syntaxe classique des boucles For

l For….of et For…in

l Une version plus voyante : .forEach

Ensuite, je voudrais présenter les similitudes et les différences dans l'utilisation de ces trois syntaxes, et quand et comment les utiliser pour obtenir les meilleurs résultats. Bon, commençons.

Boucle For classique

Nous devrions tous être très clairs sur cette syntaxe. Dans la boucle for, vous pouvez définir des compteurs internes, définir les conditions d'interruption correspondantes et des stratégies pas à pas flexibles (généralement, cela peut être l'un ou l'autre). augmentant ou diminuant).

La syntaxe est :

for([计数器定义];[中断条件];[步进策略]){
   //... 
    TODO
}
Copier après la connexion

Je suis sûr que même sans mon introduction, vous devez avoir déjà écrit des déclarations similaires, par exemple :

for(let counter = 0; counter <p> Exécutons-le dans Chrome après depuis un moment, les résultats obtenus sont également conformes aux attentes, mais est-ce juste la boucle for ? <br></p><p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/image/758/933/751/1606383516520600.png" class="lazy" title="1606383516520600.png" alt="Comprendre les 3 styles de boucle for en javascript et quand les utiliser"></p><p> Vous pouvez considérer la boucle for comme trois expressions </p><pre class="brush:php;toolbar:false">for(
[在循环开始时只执行一次的表达式];
[其中每一个逻辑判断都需吻合的表达式];
[循环每一步都被执行的表达式]
)
Copier après la connexion

La signification de cette expression est que vous pouvez utiliser plusieurs compteurs pour exécuter le for loop , ou exécuter le code qui doit être exécuté à chaque fois dans une expression step sans affecter le compteur, par exemple :

for(let a = 0, b = 0; a <p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/image/347/470/968/1606383547622810.png" class="lazy" title="160638352246070Comprendre les 3 styles de boucle for en javascript et quand les utiliser" alt="Comprendre les 3 styles de boucle for en javascript et quand les utiliser"></p><p>On peut aller plus loin et laisser it Cela devient plus conforme aux scénarios d'application réels : </p><pre class="brush:php;toolbar:false">for(let a = 0, b = 0; a <p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/image/347/470/968/1606383547622810.png" class="lazy" title="160638352761244Comprendre les 3 styles de boucle for en javascript et quand les utiliser" alt="Comprendre les 3 styles de boucle for en javascript et quand les utiliser"></p><p> De plus, vous pouvez même remplacer l'expression intermédiaire par un appel de fonction, à condition de vous rappeler que le retour la valeur de la fonction doit être de type booléen ou une valeur pouvant être convertie en valeur booléenne suffit, par exemple : </p><pre class="brush:php;toolbar:false">function isItDone(a) {
 console.log("函数被调用!")
 return a <p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/image/347/470/968/1606383547622810.png" class="lazy" title="160638353227285Comprendre les 3 styles de boucle for en javascript et quand les utiliser" alt="Comprendre les 3 styles de boucle for en javascript et quand les utiliser"></p><p>Alors, comment gérer les fonctions asynchrones du code dans une boucle for classique ? Comment s’assurer de ne pas tomber dans le piège de l’asynchrone ? </p><p>Je voudrais vous présenter un nouvel ami : async / wait, qui rendra les choses plus faciles et plus contrôlables lorsque nous traiterons du code asynchrone, par exemple : </p><pre class="brush:php;toolbar:false">const fs = require("fs")

async function read(fname) {
    return new Promise( (resolve, reject) => {
        fs.readFile(fname, (err, content) => {
            if(err) return reject(err)
            resolve(content.toString())
        })
    })
}

(async () => {
    let files = ['file1.json', 'file2.json']

    for(let i = 0; i <h2 id="Pour-dans-Et-Pour-de">Pour... dans Et Pour… de</h2><p> Ils se ressemblent beaucoup, mais ce ne sont pas le même type de boucle. </p><p>Essayons de les expliquer le plus brièvement possible : </p><p>For…in boucle à travers les propriétés énumérables d'un objet, c'est-à-dire lorsque votre objet personnalisé est utilisé comme table de hachage ou dictionnaire, il sera très simple de les parcourir en utilisant For...in. </p><p>Mais veuillez noter que l'ordre de parcours est exécuté dans l'ordre des éléments, veuillez donc ne pas vous fier à l'ordre des boucles. </p><pre class="brush:php;toolbar:false">let myMap {
  uno: 1,
  dos: 2,
  tres: 3
}
for(let key in myMap) {
  console.log(key, "=", myMap[key]);
}
Copier après la connexion

Cela semble très simple, mais n'oubliez pas que For...in ne peut traverser qu'un objet entité. Si vous facilitez une non-entité, comme la traversée d'une chaîne, ce qui suit se produira :

for(let k in "Hello World!") {
   console.log(k)
}
Copier après la connexion

Comprendre les 3 styles de boucle for en javascript et quand les utiliser

Comme vous pouvez le voir d'après les résultats, toutes les lettres ne sont pas parcourues, mais chaque attribut est parcouru. Comme vous pouvez le voir, les nombres parcourus ne sont pas inutiles, car "Hello World. !"[1] peut également renvoyer les lettres correspondantes.

En revanche, si vous souhaitez parcourir chaque caractère, vous devez utiliser d'autres variantes : For…of

for(let char of "Hello World!") {
  console.log(char)
}
Copier après la connexion

Comprendre les 3 styles de boucle for en javascript et quand les utiliser

Cette façon de boucler a l'air bien pour les types de chaîne sont plus efficaces et le même cas d'utilisation, car en utilisant cette syntaxe, peut renvoyer la valeur correspondante dans l'élément. Nous savons donc, d'après les cas d'utilisation ci-dessus, que le contenu parcouru par For...of est la valeur de l'objet.

À travers les exemples ci-dessus, nous pouvons voir qu'ils traversent des attributs et des valeurs. Existe-t-il donc un moyen d'obtenir à la fois les attributs et les valeurs ? La réponse est oui, en utilisant la méthode des entrées, vous pouvez les obtenir en même temps ? time. Propriétés et valeurs, comme ceci :

let myArr = ["hello", "world"]
for([idx, value] of myArr.entries()) {
    console.log(idx, '=', value)
}
Copier après la connexion

Comprendre les 3 styles de boucle for en javascript et quand les utiliser

Enfin, à quoi cela ressemble-t-il lorsque l'on traite du code asynchrone ? La réponse est bien sûr la même que pour la boucle for.

const fs = require("fs")

async function read(fname) {
    return new Promise( (resolve, reject) => {
        fs.readFile(fname, (err, content) => {
            if(err) return reject(err)
            resolve(content.toString())
        })
    })
}



(async () => {
    let files = ['file2.json', 'file2.json']

    for(fname of files) {
        let fcontent = await read(fname)
        console.log(fcontent)
        console.log("-------")
    }

    for(idx in files) {
        let fcontent = await read(files[idx])
        console.log(fcontent)
        console.log("-------")
    }
})()
Copier après la connexion

Enfin, nous utiliserons un moyen court pour résumer la différence entre For…in et For…of

For…in——Attributs de traversée

For … of - Boucle à travers les valeurs

.forEach boucle

C'est probablement ma préférée, tout simplement parce que j'aime beaucoup la syntaxe déclarative ou la manière déclarative d'écrire du code via des impératifs.

De plus, bien que la syntaxe de boucle ci-dessus soit également très utile et présente de bons cas d'utilisation, forEach est très utile lorsque nous devons nous concentrer sur les données elles-mêmes.

不管怎样,先撇开哲学上的争论不谈,.foreach方法是for循环的另一个版本,但是这个方法是数组对象的一部分,它的目的是接收一个函数和一个额外的可选参数,以便在执行函数时重新定义该函数的上下文。

对于数组中的每个元素,我们的函数都将被执行,并且它将收到三个参数(是的,就是三个,而不是一个,因为您已经习惯了使用它)。它们分别是:

  • 正在处理的当前元素。

  • 元素的索引,这已经简化了我们试图用for…of循环实现的任务

  • 正在处理的实际数组。以防万一你需要做点什么。

那么,让我们看一个简单的示例:

a = ["hello", "world"]

a.forEach ( (elem, idx, arr) => {
   console.log(elem, "at: ", idx, "inside: ", arr)
})
Copier après la connexion

Comprendre les 3 styles de boucle for en javascript et quand les utiliser

更快更简单,不是吗?

但是你可以看到我们如何在函数中很容易地使用所有属性。下面是一个您希望在foreach方法上使用第二个可选参数的示例:

class Person {
    constructor(name)  {
        this.name = name
    }
}

function greet(person) {
    console.log(this.greeting.replace("$", person.name))
}

let english = {
    greeting: "Hello there, $"
}
let spanish = {
    greeting: "Hola $, ¿cómo estás?"
}

let people = [new Person("Fernando"), new Person("Federico"), new Person("Felipe")]


people.forEach( greet, english)
people.forEach( greet, spanish)
Copier après la connexion

通过重写被调用函数greet的上下文,我可以在不影响其代码的情况下更改其行为。

最后,显示此方法也可以与异步代码一起使用,下面是示例:

const fs = require("fs")

async function read(fname) {
    return new Promise( (resolve, reject) => {
        fs.readFile(fname, (err, content) => {
            if(err) return reject(err)
            resolve(content.toString())
        })
    })
}

let files = ['file1.json', 'file2.json']

files.forEach( async fname => {
    let fcontent = await read(fname)
    console.log(fcontent)
    console.log("-------")
})
Copier après la connexion

结论

这就是我想要分享的关于JavaScript中关于循环的全部内容,我希望现在您对它们有了更清晰的理解,并且可以根据这些知识和我们当前的实际需求来选择您喜欢的循环。

原文地址:https://blog.bitsrc.io/3-flavors-of-the-for-loop-in-javascript-and-when-to-use-them-f0fb5501bdf3

更多编程相关知识,请访问:编程学习网站!!

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)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

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

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

See all articles