2010-05-06 18 views
0

J'ai un script et j'ai presque terminé mais j'ai cette erreur et franchement je n'ai aucune idée de ce qui ne va pas ici. Je suis plutôt nouveau à Javascript, donc je pense que j'ai fait quelque chose de mal dans la syntaxe quelque part. Voici un extrait du script contenant la ligne fautive:TypeError: Impossible de trouver la fonction 1.0

var gc = 0; 
var seg; 
var segCount = 0; 
var groupCount = 0; 
var groupLevel = 0; 
var segments = new Array(); 
var sk = ""; 
for(gc = 0; gc <= groupLevel; gc++) 
{ 
    if(gc >= groupDelimiters.length) break; 
    if(seg.name() == groupDelimiters[gc]) 
    { 
     //ok we start another group 
     grKeys.startNewGroup(groupLevel, groupCriterionExtractors[groupLevel](segCount), groupCount); 
     groupLevel = gc + 1; //This line is flagged with the error in the title 
     groupCount++; 
    } 
} 

idées, des pointeurs, toute aide serait appréciée. Edit - J'ai été vissé par la syntaxe de balisage $ & de l'espace extra-atmosphérique. Voici le code tel qu'il aurait dû apparaître.

+0

Donnez-moi quelques exemples de données dans les variables 'groupDelimiters', 'grKeys' et 'groupCriterionExtractors'. Il suffit d'inventer des données qui fonctionneraient de la même manière si les données d'origine sont sensibles ... –

Répondre

2

Il est difficile de dire sans plus d'informations, mais je suppose du message d'erreur que le code suivant:

groupCriterionExtractors[groupLevel] 

donne la valeur 1.0 que vous essayez d'appeler avec:

(segCount) 

Il est comme dire:

grKeys.startNewGroup(groupLevel, 1.0(segCount), groupCount); 

Il y a plusieurs problèmes avec le code ci-dessus comme la boucle, postez ce que vous essayez de faire et des données de test et je peux aider plus

+0

Darn ... exactement ... J'ai créé un tableau de fonctions, mais mon algorithme n'était pas correct et a débordé le tableau dans l'espace inconnu. J'aurais dû attraper celui-là, mais l'erreur du compilateur m'a envoyé dans la mauvaise direction. – Newtopian

0

Il manque {dans votre code et la syntaxe for() est incorrecte.

for ([initialExpression]; [condition]; [incrementExpression]) 

ah, oui, votre boucle for() n'exécutera rien comme c'est le cas maintenant.

+0

oui bien sûr .. J'ai posté trop vite et me suis fait baiser par le balisage, ça a déformé une partie du code. Votre réponse m'a donné la tête à ce sujet ... merci :-) – Newtopian

0

Ce:

for(gc = 0; gc = groupDelimiters.length) break; 
    if (seg.name() == groupDelimiters[gc]) 
    ... 

devrait probablement être

for (gc = 0; gc < groupDelimiters.length; gc++) { 
    if (seg.name() == groupDelimiters[gc]) 
    ... 
+0

oui vous avez raison, c'était en fait, juste que la syntaxe de balisage et regex qui les régissent ont brouillé mon code en quelque sorte ... darn chose ... je Je ne sais pas pourquoi mais cette syntaxe de démarque me donne vraiment des ennuis. Je veux dire que j'ai essayé beaucoup d'entre eux et je n'ai jamais eu autant de problèmes avec ça ... de toute façon ... merci d'avoir pris le temps de répondre. – Newtopian

Questions connexes