2010-11-02 5 views
1

Pourquoi ce tableau JavaScript extrêmement basique me donne une longueur de 13 lorsqu'il n'y a que 3 paires clé/valeur. Il est logique qu'il pense 13 comme index basé sur 0 et mon dernier tableau a une clé de 12, mais j'ai besoin d'avoir un tableau qui a une paire clé/valeur qui me renvoie le nombre correct de paires. Les clés doivent être des nombres.Valeur de la clé de longueur de tableau JavaScript

http://jsfiddle.net/fmgc8/1/

EDIT: voici comment je l'ai résolu grâce.

http://jsfiddle.net/fmgc8/4/

+0

vous ne pouvez pas utiliser de chaînes pour indexer un tableau. javascript convertit votre '12' en 12 – Geoff

Répondre

1

Il n'y a pas diffrence entre array['12'] et array[12] (tableau ['12' ] ne sont pas considérés comme tableau associatif élément). Pour trouver le tableau associatif length

6

c'est parce que le nombre le plus élevé que vous avez est:

array['12'] = 'twelve'; 

Cela crée une longueur de tableau de 13 (puisqu'il est 0 base). JavaScript va développer le tableau pour allouer le nombre de points dont il a besoin pour satisfaire vos emplacements spécifiés. array[0..9] est là, vous n'avez rien placé dedans.

1

La propriété length de arrays renvoie la plus grande clé numérique non-négative de l'objet, plus une. C'est juste comme cela est défini.

Si vous souhaitez compter les paires valeur/clé, vous devez les compter vous-même (soit en les suivant lorsqu'elles sont ajoutées et supprimées, soit en les parcourant).

1

Ou, réorganiser votre tableau comme ceci:

var array = []; 

array.push(['10','ten']);  
array.push(['11','eleven']);  
array.push(['12','twelfe']);   

alert(array.length); 
Questions connexes