Comment spécifier l'index de JavaScript pour l'instruction

Depuis que je travaille sur VB et Delphi, je suis toujours un peu confus sur la façon de spécifier la valeur de la boucle lors de l'écriture d'une instruction C / C ++ for telle que JavaScript, alors prenez-en note.

La manière simple d'écrire lorsque vous voulez que la valeur d'index boucle de 0 à longueur -1 est la suivante.

i ++ et i-- respectent JsLint et essayez de ne pas l'utiliser.

  var str = 'abc';
  for (var i = 0; i <= str.length - 1; i += 1) {
    console.log(str[i]);
  }
  //Sortie dans l'ordre de a b c

Cependant, je pense que c'est un langage caractéristique de l'instruction for de type C, mais le jugement final fait partie de la boucle for pour chaque boucle

i <= str.length - 1



 Comme cela est évalué, le processus d'obtention de str.length se produit à chaque fois, ce qui ralentit un peu la boucle.

 Par conséquent, il est préférable d'attribuer d'abord le nombre de boucles à une variable en mettant l'accent sur l'accélération.

```javascript
  var str = 'abc';
  for (var i = 0, il = str.length - 1; i <= il; i += 1) {
    console.log(str[i]);
  }
  //Sortie dans l'ordre de a b c

Ceci est également écrit comme ceci.

  var str = 'abc';
  for (var i = 0, il = str.length; i < il; i += 1) {
    console.log(str[i]);
  }
  //Sortie dans l'ordre de a b c

Cela rend difficile la lecture de la valeur finale de la boucle, ce qui me met toujours un peu mal à l'aise, mais pour les gens en C / C ++ / Java, ce n'est pas illisible, c'est donc un code que je vois souvent. Ce serait bien de pouvoir le lire.

Dans l'ordre inverse, il vaut mieux écrire comme ça.

  var str = 'abc';
  for (var i = str.length - 1; 0 <= i; i -= 1) {
    console.log(str[i]);
  }
  //Sortie dans l'ordre de c b a

De plus, si vous concevez et utilisez la syntaxe for, vous pouvez également effectuer les opérations suivantes.

  for (var i = str.length; i--;) {
    console.log(str[i]);
  }
  //Sortie dans l'ordre de c b a

Le texte complet du contrôle de fonctionnement est le suivant.

index.html


<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="utf-8">
  <title></title>
<script>

  var str = 'abc';

  for (var i = 0; i <= str.length - 1; i += 1) {
    console.log(str[i]);
  }
  //Sortie dans l'ordre de a b c

  for (var i = 0, il = str.length - 1; i <= il; i += 1) {
    console.log(str[i]);
  }
  //Sortie dans l'ordre de a b c

  for (var i = 0, il = str.length; i < il; i += 1) {
    console.log(str[i]);
  }
  //Sortie dans l'ordre de a b c

  for (var i = str.length - 1; 0 <= i; i -= 1) {
    console.log(str[i]);
  }
  //Sortie dans l'ordre de c b a

  for (var i = str.length; i--;) {
    console.log(str[i]);
  }
  //Sortie dans l'ordre de c b a

</script>
</head><body>
</body></html>

Recommended Posts

Comment spécifier l'index de JavaScript pour l'instruction
Comment spécifier la validation pour time_field
Comment obtenir le contenu de la carte à l'aide du mémorandum d'instructions
Comment faire une boucle Java Map (for Each / extended for statement)
Comment exécuter l'exemple WebCamCapture de NyARToolkit pour Java
Comparaison de l'écriture des fonctions de rappel (Java, JavaScript, Ruby)
L'idée de C # (expression lambda, pour phrase) à mâcher
Comment générer des valeurs de tableau sans utiliser d'instruction for
Comment installer JMeter pour Mac
Comment utiliser setDefaultCloseOperation () de JFrame
java Eclips Comment déboguer javaScript
[Rails] Comment changer le titre de la page du navigateur pour chaque page
Comment vérifier le contenu de la chaîne de caractères java de longueur fixe
Comment faire un diamant révolutionnaire en utilisant Java pour déclaration wwww
[swift5] Comment spécifier la couleur en hexadécimal
Comment utiliser binding.pry pour afficher le fichier
Comment installer Play Framework 2.6 pour Mac
Comment nommer les variables 7 sélections d'inconfort
[java] Résumé de la gestion des caractères
Comment changer d'images miniatures avec JavaScript
Résumé de l'écriture des arguments d'annotation
Comment créer un référentiel Maven pour 2020
Comment déterminer le nombre de parallèles
Comment changer l'affichage du menu d'en-tête pour chaque page de transition
Comment créer un environnement pour n'importe quelle version de Ruby en utilisant rbenv
[Java] [Maven3] Résumé de l'utilisation de Maven3
[Pour les débutants Rails] Résumé de l'utilisation de RSpec (obtenir un aperçu)
Nécessaire pour iOS 14? Comment définir NSUserTrackingUsageDescription
Comment spécifier l'attribut id dans JSF
[Pour les débutants] Comment déboguer avec Eclipse
Comment afficher la quantité de disque utilisée par le conteneur Docker pour chaque conteneur
[Java] Comment obtenir des éléments HashMap par contrôle de boucle à l'aide de l'instruction Extended for
Résumé de la sélection des éléments dans Selenium
Promesse JDBC et exemple d'écriture
[Java] Comment tester s'il est nul dans JUnit
Comment créer une base de données H2 n'importe où
Comment découvrir les tendances de l'OSS pour le développement Web
[java] Résumé de la gestion des chaînes de caractères
Résumé de la création de balises JSF personnalisées
Comparaison des instructions pour récupérer des séquences séquentiellement
Personnalisez la répartition du contenu de Recyclerview
[Bcrypt] Comment annuler la présence: true de has_secure_password
[Java] Résumé de la façon d'omettre les expressions lambda
Comment utiliser un tableau pour les clés HashMap
Comment jouer de la voix ou de la musique en utilisant javascript
[Rails] Comment implémenter un test unitaire d'un modèle
Comment obtenir le jour d'aujourd'hui
[Pour les débutants] Comment implémenter la fonction de suppression
Sortie de la façon d'utiliser la méthode slice
Comment créer un JRE léger pour la distribution
[Validation] rails Comment spécifier après la date d'aujourd'hui
[Java] (pour MacOS) Méthode de définition du chemin de classe
[Swift UI] Comment désactiver ScrollsToTop de ScrollView
Comment utiliser JQuery dans Rails 6 js.erb
Comment afficher le résultat du remplissage du formulaire
[Pour les super débutants] Comment utiliser l'autofocus: vrai