Array.length

Résolu
xactise Messages postés 507 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 22 juin 2012 - 11 janv. 2011 à 16:40
jdmcreator Messages postés 647 Date d'inscription samedi 30 décembre 2000 Statut Membre Dernière intervention 20 juillet 2012 - 13 janv. 2011 à 01:04
Bonjour à tous

je fait fasse à un étonnement

voici ce bout de code

<script type="text/javascript">

var t = new Array();
t[0] = 1;
t[7] = 2;

alert(t.length); // 8 ??
alert(t[3]); // Undefined
</script>


Ou encore celui ci :
<script type="text/javascript">

var t = new Array();
t['toto'] = 1;
t['tata'] = 2;

alert(t.length); // 0 ??
alert(t[3]); // Undefined
</script>



Quelqu'un peut-il m'expliquer les résultats des alertes ?

D'avance merci

L0rD...

5 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 36
11 janv. 2011 à 17:00
salut

Pour la premiere,
c'est simple

var t = new Array();
t[0] = 1;
t[7] = 2;

alert(t.length); // 8 ??
alert(t[3]); // Undefined
alert(t[0]); // Undefined
alert(t[x]); // Undefined où <> 0 et 7
alert(t[7]); // 2

0 a 7 --> 8 elements


pour la deuxieme il faut utiliser la forme foreach
// show the values stored
for (var i in t) {
alert('key is: ' + i + ', value is: ' + t[i]);
}

la length n'est pas renseigné dans les hachtables
3
jdmcreator Messages postés 647 Date d'inscription samedi 30 décembre 2000 Statut Membre Dernière intervention 20 juillet 2012 7
12 janv. 2011 à 03:44
Lorsque tu crées un Array de ce genre, implicitement est créé
t[0] = 1;
t[1] = undefined;
t[2] = undefined;
t[3] = undefined;
t[4] = undefined;
t[5] = undefined;
t[6] = undefined;
t[7] = 2;




JDMCreator
--------
Participez au nouveau projet : la wiki sur le javascript !
fr.jsinfo.wikia.com
3
xactise Messages postés 507 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 22 juin 2012 2
11 janv. 2011 à 17:11
Bonjour et merci de t'intéresser au sujet.

Concernant le Deuxième résultat très bien.

Mais concernant le premier tu dit que c'est "normal"

heuu oui dans le sens ou le résultat est ce qu'il est, mais le tout est de savoir pourquoi ?

En PHP on obtient pas ce genre de résultat par exemple
<?php
$t = array();
$t[0] = 1;
$t[7] = 2;
echo count($t); // 2
?>


L0rD...
0
xactise Messages postés 507 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 22 juin 2012 2
12 janv. 2011 à 08:48
Oki, merci à tous

J'esper n'avoir pas été trop ignorant sur le sujet ^^


L0rD...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jdmcreator Messages postés 647 Date d'inscription samedi 30 décembre 2000 Statut Membre Dernière intervention 20 juillet 2012 7
13 janv. 2011 à 01:04
Mais non J'avais un proverbe à répondre mais je l'ai oublié.


JDMCreator
--------
Participez au nouveau projet : la wiki sur le javascript !
fr.jsinfo.wikia.com
0
Rejoignez-nous