0

要素を 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>
4

1 に答える 1

3

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 = [];ます。同じことを行いますが、より簡潔で、副作用が発生しにくいです。

于 2012-12-20T16:20:45.633 に答える