Array.length

[Résolu]
Signaler
Messages postés
507
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
22 juin 2012
-
Messages postés
647
Date d'inscription
samedi 30 décembre 2000
Statut
Membre
Dernière intervention
20 juillet 2012
-
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

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
33
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
Messages postés
647
Date d'inscription
samedi 30 décembre 2000
Statut
Membre
Dernière intervention
20 juillet 2012
7
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
Messages postés
507
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
22 juin 2012
2
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...
Messages postés
507
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
22 juin 2012
2
Oki, merci à tous

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


L0rD...
Messages postés
647
Date d'inscription
samedi 30 décembre 2000
Statut
Membre
Dernière intervention
20 juillet 2012
7
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