代码之家  ›  专栏  ›  技术社区  ›  Newtopian

类型错误:找不到函数1.0

  •  0
  • Newtopian  · 技术社区  · 14 年前

    我有一个脚本,我几乎完成了,但我得到了这个错误,坦率地说,我不知道这里有什么问题。我对javascript还不太熟悉,所以我怀疑我在语法上做了一些错误的事情。以下是包含违规行的脚本摘录:

    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++;
        }
    }
    

    想法,建议,任何帮助都将不胜感激。

    编辑-我被外层空间的$%*&标记语法搞砸了。这是应该出现的代码。

    3 回复  |  直到 14 年前
        1
  •  2
  •   Peter McG    14 年前

    没有更多的信息很难判断,但我可以从错误消息中猜出以下代码:

    groupCriterionExtractors[groupLevel]
    

    正在生成值1.0,然后尝试使用该值调用:

    (segCount)
    

    就像是说:

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

    上面的代码有几个问题,比如for循环、post您要做的事情和一些测试数据,我可以提供更多帮助

        2
  •  0
  •   Dormilich    14 年前

    代码中缺少{,for()语法错误。

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

    啊,是的,for()循环现在不会执行任何东西。

        3
  •  0
  •   glebm    14 年前

    这是:

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

    应该是

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