Bonjour,
mon problème est que ma boucle for ne va pas jusqu'au bout pour lire toutes les valeurs d'un tableau.
Voici le code javascript très simplifié du problème :
Et après l'exécution de ce code, voici ce que j'ai dans la console :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 <script type="text/javascript"> /*On crée un array qui contient 9 chiffres*/ tableau = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; /*On crée une fonction qui va servir supprimer toutes les valeurs d'un tableau passé en paramètre :*/ function supprimerValeurs(array) { /*On crée une copie de l'array, car c'est dans cette copie qu'on va supprimer toutes les valeurs :*/ copyArray = array; /*On fait une boucle for sur le tableau array pour supprimer toutes les valeurs dans copyArray*/ for(j = 0; j < array.length; j++) { /*On supprime la valeur dans la copie copyArray*/ copyArray.splice(array.indexOf(j), 1); /*On affiche dans la console la progression de l'incrémentation :*/ console.log(j); } } /*On exécute la fonction pour supprimer toutes les valeurs du tableau*/ supprimerValeurs(tableau); </script>
, alors que je devrais avoir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 0 1 3 4
=> donc ça veut dire que la boucle for s'arrête à 4 au lieu d'aller jusqu'au bout, càd jusqu'à 9.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 0 1 3 4 5 6 7 8 9
Apparemment, quand je commente la ligne, ça va bien jusqu'au bout.
Code : Sélectionner tout - Visualiser dans une fenêtre à part copyArray.splice(array.indexOf(j), 1);
Mais pourquoi ça ne va pas jusqu'au bout ?
Merci d'avance, cordialement.
PS : Je sais que je peux supprimer toutes les valeurs d'un tableau en faisant juste tableau = [];, mais je ne veux pas le faire, car dans le script complet, il y a d'autres traitements dans la boucle for en question.
Partager