.length返回为undefined的问题

时间:2013-04-19 18:11:25

标签: javascript

我正在构建一个使用名为Chat.fetch()的函数的项目;它是一个异步函数,从服务器中提取字符串数组。这是一个ajax函数,为了项目的目的已经定义,我只需要正确调用它。我们给出了另一个名为Chat.display()的函数,它接受一个字符串并在控制台上以项目符号形式显示它。现在这就是我所拥有的:我收到的错误是无法读取未定义的属性长度。所以我猜super.rout是未定义的吗?目标是创建此函数并将其用作Chat.fetch()的回调函数。你们有什么想法我为什么会得到这个.length错误?我很困惑。谢谢!

<!DOCTYPE html>
    <html>
  <head>
    <meta charset="utf-8">
    <script src="http://chatbuilder.hackreactor.com/ChatBuilder.js"></script>
  </head>
  <body>
    <script>


    Chat.guide.start();
    </script>

    <h2>Borken Chat</h2>

    <input class="draft" type="text"/> <button class="send" disabled>send</button>



    <ul class="messages">

  <script>
    var list;
    var superArray=[];
    darray=function(superArray){
      var y=superArray.length;
      for(i=0;i<y;i++){
        Chat.display(x[i]);
      }
    }
    Chat.fetch(darray(list));
  </script>

    </ul>

3 个答案:

答案 0 :(得分:0)

因为您发送list作为superArray参数,而list确实发送在undefined中 你需要发送superArray:

Chat.fetch(darray(superArray));

答案 1 :(得分:0)

将变量'list'传递给函数

Chat.fetch(darray(list));

列表在这一刻是未定义的,所以你不能在它上面使用'length'是正常的。 我不知道这个函数的正确使用是什么,但我认为你必须将'superArray'传递给函数而不是'list'

答案 2 :(得分:0)

尝试通过将变量设置为0来初始化变量。var list = 0;