2009-09-04 12 views
0

HI,javascript - un tableau de tableaux, les indices de comptage

Je cherche à ce bout de code:

var length = 0; 
for (recordId in publicationTableIndexes[sortColumnNumber]){ 
    length++; 
} 

Et je me demande s'il y a un moyen d'obtenir le même résultat sans boucle?

publicationTableIndexes est un tableau contenant 5 tableaux. Si j'essaie publicationTAbleIndexes [sortColumnNumber] .length je deviens indéfini.

Des idées?

Merci, Ron. Ok, selon les suggestions, j'ai fait quelques tests et j'ai réalisé que le sous-élément est en fait un objet. Le code construcotor:

function sortTableByCreatingIndex(table, sortingColumnNumber, sortOrder, superTable){ 
var length = 0; 

//Length -1 due to the array doing an upwards comparison, if length not adjusted null object error. 
length = table.length - 1; 

for (recordId = 0; recordId <= length; recordId++){ 
    this[recordId] = recordId; 
} 

J'ai pas vraiment rencontré le « ceci » avant utilisation et a été très intrigué par elle. Ce qui m'intéresse c'est de savoir comment l'enlever et le définir comme un tableau. Comment cela fonctionne-t-il parce que regarder le code n'est pas évident d'où il tire ses valeurs, un peu comme la magie, il sait quel objet à référencer.

Merci, R.

+4

Je pense que vous avez plutôt un objet ('{}' literal) qu'un tableau ('[]' literal). Les tableaux ont la propriété 'longueur', les objets non. – Gumbo

+0

non, c'est un tableau publicationTableIndexes = new Array(); – flavour404

+2

le publicationTableIndexes est un tableau, bien sûr, mais qu'en est-il de publicationTableIndexs [0], est-ce un tableau ou un littéral d'objet? – gnarf

Répondre

0

Sonne comme les données du tableau ne sont pas ce que votre attendre à ce qu'on. Ce que je ferais est d'obtenir Firebug, et mis dans ce qui suit juste avant votre boucle

console.debug(publicationTableIndexes); 

qui vous montrera le contenu du tableau, et vous pouvez voir ce qui est exactement en elle.

+0

? Je n'ai aucun problème avec les données qu'il contient, je veux juste connaître la longueur du tableau! – flavour404

+1

saveur, personne ici ne sait que c'est un tableau - il ne ressemble pas à un tableau (c'est un membre d'un tableau - qui sait de quoi il s'agit) et il ne parle pas comme un tableau (.length est indéfini , par exemple). vous avez confiance dans les données, mais nous ne l'avons pas vu. soit essayer certaines des méthodes suggérées (et rapporter leur échec en détail), ou nous montrer aussi les données. –

+0

J'essaie les méthodes décrites. – flavour404

3

Les données stockées dans chaque entrée de votre publicationTableIndexes sont probablement stockées à l'aide d'un objet qui n'a pas de propriété .length.

SO5223 couvre la «meilleure» façon de déterminer la longueur d'un objet.

Questions connexes