Je suis le tutoriel débutant w3school pour JS. Il y a quelque chose que je ne comprends pas dans le code ci-dessous:

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
var cars = ["Saab","Volvo","BMW"];
var text = "";
for(var i = 0; i < cars.length; i++) {
text+=cars[i] + "<br>";
}


document.getElementById("demo").innerHTML = text;
</script>

</body>
</html>

Quelqu'un peut-il m'expliquer la logique de text+=cars[i]? Je comprends que += signifie incrément, mais je ne comprends pas la logique derrière l'ajout de l'élément de tableau au texte variable.

Merci beaucoup pour vos réponses rapides! J'ai une question de suivi: existe-t-il une alternative pour afficher le même type d'informations avec l'utilisation du

var text = "";

Et

text+=cars[i]

Morceaux de code? Si tel est le cas, à quoi ressemblerait l'extrait de code et que dois-je insérer dans HTML sinon

text

?

Merci encore!

2
Pere 12 juil. 2015 à 17:35

8 réponses

Meilleure réponse

a+=b est l'abréviation de a=a+b. Dans votre cas, vous avez text = text + cars[i] + "<br>".

text est une chaîne et vous utilisez + pour ajouter une valeur à partir du tableau (qui contient des chaînes), puis ajoutez "<br>"

0
mniip 12 juil. 2015 à 14:38

La valeur de text à la fin de la boucle va être

Saab<br>Volvo<br>BMW<br>

Où br signifie saut de ligne. Pour que chacun d'eux soit imprimé sur une nouvelle ligne. Et la dernière ligne de code

Document.getElementById ("démo"). innerHTML = text;

Change la valeur de l'élément html qui a l'id de demo en celui de text.

0
Riken Shah 12 juil. 2015 à 14:39

+ = n'est pas incrémenté. Il ajoute (dans ce cas la concaténation) et enregistre le résultat dans la même variable.

var a +=b;

Est la même chose pour:

var = a + b;

Dans votre cas, le script concatène tous les éléments du tableau en une seule chaîne et ajoute des balises <br> entre eux.

0
Olexander Yermakov 12 juil. 2015 à 14:41

Considérez-le comme ça,

text+=cars[i] + "<br>"; 

Est en fait

text=text+cars[i]+"<br>";

De sorte qu'au lieu de supprimer l'ancienne valeur, il concatène le nouveau mot avec la chaîne existante. (Concaténation de chaînes).

PS: En tant que camarade débutant, un petit conseil plutôt que de suivre les écoles W3, rendez-vous sur un site comme codecademy qui vous aide d'apprendre avec la pratique et une explication appropriée.

0
Raghu 12 juil. 2015 à 14:40
text += cars[i] + '<br>';

Concatène l'élément i du tableau cars au texte, séparé par une balise <br>.

0
user2182349 12 juil. 2015 à 14:39

Ici, ils le font en fait juste pour montrer qu'il n'y a aucun intérêt à le faire de cette façon, ils veulent juste montrer à chaque individu à l'intérieur d'un tableau et le concaténer en chaîne la même chose que vous pouvez faire avec la méthode Array.prototype.join () dont pensez ici que vous devez utiliser car ils montrent toujours concaténer en une chaîne si vous le souhaitez, vous pouvez simplement utiliser chaque individu à l'intérieur comme vous le souhaitez

0
nikoss 12 juil. 2015 à 14:40

Ne pensez pas à += comme incrémentation, c'est ++.

a = a + b
a += b;

Ces deux déclarations sont les mêmes. Celui du bas prend la variable sur le côté gauche (a) et y ajoute le côté droit (b), puis l'affecte de nouveau au côté gauche (a). Ce n'est donc qu'un raccourci.

Donc, ce que vous faites dans votre code, c'est d'ajouter la chaîne de cars[i] à votre texte variable.

Cela ferait la même chose:

text = text + cars[i] + "<br>";

Une fois la boucle exécutée, vous disposerez des éléments suivants dans text:

Saab<br>Volvo<br>BMW
0
David 12 juil. 2015 à 14:40

En javascript, + est utilisé pour la concaténation de chaînes

Le code

for(var i = 0; i < cars.length; i++) {
   text+=cars[i] + "<br>";
}

Consiste à sélectionner chaque élément du tableau et à y concaténer "
".

Si vous console consignez le texte avant de définir le innerHTML, il ressemble à ceci -

"Saab<br>Volvo<br>BMW<br>"
0
Ajey 12 juil. 2015 à 14:40