0
votes

JavaScript Word aléatoire (à partir d'une liste) générateur

Je suis nouveau en JavaScript et je suis très confondu avec la commande aléatoire en JavaScript parce que dans Python, c'est tellement différent. J'ai besoin d'aide, car je souhaite faire un site Web sur lequel vous avez 3 boutons, lorsque vous appuyez sur la première, un seul mot aléatoire à partir de la première liste est écrit dans la classe de texte au-dessus des boutons et lorsque vous appuyez sur le bouton 2 uniquement. Un mot de la 2. La matrice apparaît. Mais mon code javascript ne fonctionne pas comme si cela devrait. Voici le code.

var Orte=('a','b','c')
var zufall=random(Orte) 
button1.onclick= document.getElementByclass('text')[0].innerHTML = 'zufall'


2 commentaires

Les deux premières lignes de votre extrait ne sont pas valides JavaScript. Vous voudrez peut-être rechercher des matrices JavaScript et la math.random () .


Java! == JavaScript


3 Réponses :


2
votes

L'API DOM que vous recherchez est: getelementsbyclassname

OnClick doit être une fonction qui sera appelée sur un événement de clic. Ce que vous faites, c'est appeler innerhtml = 'zufall' code> immédiatement, retourner la chaîne 'zufall' code> et attribuer onclick = 'zufall' code>, lequel n'est pas ce que tu veux. P>

JavaScript Array littéraux a> sont notés avec [] non (). P>

Je suppose que la chaîne "Zufall" n'est pas ce que vous voulez, mais la variable Zufall, que j'ai ajustée en supprimant les guillemets simples. P>

Math.Random () (pas aléatoire () CODE>) Retourne un nombre aléatoire de 0 à 1. Multipliez cela par la longueur et ensuite le plancher entier (vous pouvez utiliser math.trunch () également). Et ensuite entre parenthèses pour accéder à cet indice en orte. P>

à nouveau, les variables sont définies lorsqu'elles sont attribuées. Ce qui n'est probablement pas ce que vous voulez ici. La même chose se passe dans Python. Zufall serait attribué une valeur qui ne change pas à moins que quelque chose soit appelé pour le mettre à jour. C'est une erreur commune, bien que comme un programmeur expérimenté de Python, vous ne devriez plus faire cette erreur.
Je l'ai ajusté pour que cela met à jour Zuffall à chaque clic. Comme vous devriez pouvoir le voir, une variable globale est inutile. Vous ne pouvez simplement générer que la Zufall uniquement dans le gestionnaire OnClick. P>

p>

<div class="text"></div>
<button id="button1">click</button>


0 commentaires

1
votes

La meilleure chose à faire est d'étudier un peu mais plus sur les variables, les tableaux, les fonctions maths.random (). Ma contribution:

  • variables: la meilleure pratique consiste à les nommer à l'aide du format Camelcase (plus sur les meilleures pratiques ici: https://www.robinwieruch.de/javascript -naming-conventions )

  • Tableaux: vous définissez des tableaux en utilisant "[]". Dans votre exemple, il devrait être:

    var ortet = ['A', 'B', 'C'];

    En outre, il sera bon de lire sur la manière dont vous pouvez accéder à ces valeurs car vous utiliserez ces connaissances dans votre fonction Math.Random.

  • Fonction aléatoire: Pour comprendre correctement comment utiliser la fonction MATH.RANDOM (), veuillez cocher ce lien: https://Developer.mozilla.org/en-us/docs/web/javascript/reference/global_Objects/math/random .

  • Lorsque vous utilisez '' ou "", tout ce qui est entre les deux est traité comme une chaîne. Donc, dans votre code: "... innerhtml =" Zufall "", vous êtes à la recherche de la chaîne "Zuffal", pas la variable.

    J'ai essayé de créer un exemple de travail afin que vous puissiez comparer:

    https://codesandbox.io/s/naughty-cache-v7hxt


0 commentaires

1
votes

Vous pouvez le faire avec JavaScript simple comme celui-ci:

p>

<script src="https://randojs.com/1.0.0.js"></script>
<div class="text"></div>
<button onclick="showRandomFrom(arr1);">From arr1</button>
<button onclick="showRandomFrom(arr2);">From arr2</button>
<button onclick="showRandomFrom(arr3);">From arr3</button>


0 commentaires