Bonjour tout le monde,
Je découvre Javascript et je n'arrive pas à boucler sur un un tableau passé en paramètre d'une fonction.
Le but de l'exercice est simple, créer une function permettant de créer un tableau de longueur n, ainsi qu'une fonction permettant d'afficher ce tableau. Voici mon code.
var element = "demo";
var suite = setTab(5);
getTab(suite, element);
function setTab(nbr){
var i;
var table = [];
for( i = 0; i <= nbr-1; i++){
table[i] = prompt("Entrez un nombre");
}
return table;
}
function getTab(tab, id){
var i;
//return document.getElementById(id).innerHTML += tab[3];
//console.log(tab);
for(i = 0; i < tab.length-1; i++ ){
return document.getElementById(id).innerHTML += tab[i];
}
}
Dans la fonction getTab, lorsque je veux atteindre un élément du tableau précis je n'ai pas de problème, tab est bien un tableau indicé de 0 à 4 et je n'ai pas de problème pour afficher la valeur d'un certain indice.
Par contre avec le for, la fonction me renvoit tjs la valeur de l'indice 0;
Si je fais un coup de console.log avant la boucle que j'ai bien un tableau de longueur:5 mais je constate qu'il y a un prototype??? array
(5) ["5", "4", "7", "9", "8"]
0:"5"
1:"4"
2:"7"
3:"9"
4:"8"
length:5
__proto__:Array(0)
Il semble donc que dans ma boucle, le tab.lenght-1 renvoie la longeur de ce prototype et non la longeur de mon tableau.
Que dois-je donc faire pour accéder à mon tableau.
Merci d'avance pour vos réponses
Bonjour,
Pour le prototype :
[https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/prototype]()
Il faut enlever le -1 dans la boucle du getTab et le return
function getTab(tab, id){
for(var i = 0; i < tab.length; i++ ){
document.getElementById(id).innerHTML += tab[i];
}
}
@+
Merci! Effectivement cela marche bcp mieux comme cela :)
Et merci pour le lien je vais lire ça à mon aise :)
Bonne fin de week-end