当我尝试将元素推入javascript数组时,它不起作用。
这是我能想到的最简单的示例。
为什么不起作用?

    <!DOCTYPE html>
    <html>
    <body>

    <script>
    var i;
    var mycars = new Array();

    for(i=1;i<=10;i++){
      mycars.push[ i.toString()+"-" ];
    }

    alert(mycars.join(""));

    </script>

    </body>
    </html>

最佳答案

push是一个函数。您使用()而不是[]调用函数:

mycars.push( i.toString()+"-" );
// here ---^     and here ----^


您可能会感到困惑的是,即使不存在push元素,也可以通过分配给数组元素来添加到数组。因此,例如,您的循环可能如下所示:

for(i=1;i<=10;i++){
  mycars[mycars.length] = i.toString()+"-";
}


在那里,因为我指的是数组元素(mycars[mycars.length]),而不是调用函数,所以我使用[]

旁注:只需写var mycars = new Array();,而不是var mycars = [];。它具有相同的作用,但更简洁且不易产生副作用。

07-24 09:45