J'étudie un livre de Javascript avec des exemples résolus mais il y a un exemple sans solution. J'aimerais savoir comment le faire ...
En javascript (dans le navigateur), je devrais écrire des nombres pairs de 1-1000 et, une fois l'opération terminée, écrire des nombres impairs de 1-1000 ... savoir si le premier cycle est terminé et commencer à écrire des nombres impairs?
Voici comment j'ai commencé:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Test</title>
</head>
<body>
<script type="text/javascript">
/* <![CDATA[ */
var i;
for (i = 0; i < 1000; i++)
if ((i % 2) == 0)
document.writeln(i);
/* ]]> */
</script>
</body>
</html>
Essayez ceci:
function partA() {
for (var i = 0; i < 1000; i++){
if ((i % 2) == 0) document.write(i + ' ');
}
window.setTimeout(partB,1000)
}
function partB() {
for (var i = 0; i < 1000; i++){
if ((i % 2) !== 0) document.write(i + ' ');
}
}
partA();
SIDENOTE:
Utilisez document.write
pour tester uniquement. Si vous l'exécutez sur un document HTML chargé, tous les éléments HTML seront écrasés. (Comme vous pouvez le voir dans mon exemple)
Vous devriez essayer quelque chose comme ça:
(function(){
for (var i = 0; i < 1000; i++){
if ((i % 2) === 0) document. write(i + ' ');
}
for (var i = 0; i < 1000; i++){
if ((i % 2) !== 0) document. write(i + ' ');
}
})();
* Vous ne devriez utiliser document.write
qu'à des fins de test
Je n'ai pas pu faire une pause entre les itérations du comptage. Le code ci-dessous, à la place de votre script, vous donnera 0 à 1 000 événements, puis une cote, 1 par ligne.
Il existe déjà des discussions sur l'attente en javascript sur le site: Quel est l'équivalent de Thread.sleep () de Java en JavaScript?
<script>
for(var mod = 0; mod<2; mod++){
for (var i = 0; i < 1000; i++)
if ((i % 2) == mod)
document.writeln(i+"<br>");
}
</script>
Les autres solutions publiées ici sont correctes, mais il n’ya aucune raison de passer par tout le travail modulo:
function evens () {
var i;
for (i = 2; i <= 1000; i++,i++) {
document.writeln(i + '<br>');
}
};
function odds () {
var i;
for (i = 1; i < 1000; i++,i++) {
document.writeln(i + '<br>');
}
};
evens();
setTimeout(odds, 2000);
Tout d’abord, si vous voulez un nombre pair de 1 à 1000, la variable d’itération doit commencer à 1, pas à 0. :) Pour écrire des nombres impairs après des paires, vous pouvez simplement mettre une autre boucle derrière la première avec if (i% 2 == 1) et ça devrait aller!
Je ne sais pas comment y ajouter la "pause" entre l'écriture d'un numéro et savoir si le premier cycle est terminé et commencer à écrire des nombres impairs
Utilisez une fonction. Il devrait également figurer dans le livre que vous lisez. Utilisez un pour même et un autre pour impair. Il devrait y avoir un chapitre sur la gestion des événements, où vous utilisez des éléments (comme des boutons) pour gérer les clics. Utilisez cela pour appeler les fonctions.
Aussi, essayez de lire plus loin. Les fonctions document.write*
ne sont pas vraiment idéales, sauf pour les tâches effectuées lors du chargement de la page. Essayez d’utiliser des méthodes beaucoup plus avancées pour écrire dans le DOM. Ceux-ci devraient également figurer dans ce livre.
Enfin, JavaScript ne "met pas en pause" et n'a pas non plus quelque chose comme sleep
. Il a des minuteries cependant, mais cela fonctionne différemment de sleep
.
Une note sans rapport, je crois que vous utilisez un vieux livre. "HTML5" requiert uniquement le "doctype html5" et le <html>
.
<!doctype html>
<html>
...