JavaScript配列を生成するためのいくつかの異なる方法を試しているときに、奇妙な結果に出くわしました。自己参照の配列(map
DEMO )の使用:push
a=[1,1,1,1,1,1,1,1,1,1];
a=a.map(a.push,a);
次の結果が得られます(Chromeで):
[13,16,19,22,25,28,31,34,37,40]
誰かが理由を説明できますか?
JavaScript配列を生成するためのいくつかの異なる方法を試しているときに、奇妙な結果に出くわしました。自己参照の配列(map
DEMO )の使用:push
a=[1,1,1,1,1,1,1,1,1,1];
a=a.map(a.push,a);
次の結果が得られます(Chromeで):
[13,16,19,22,25,28,31,34,37,40]
誰かが理由を説明できますか?
push
これは、新しい長さであるという戻り値と関係があります。なぜそれが3ずつ増加するのかわからない。
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/push
戻り値
メソッドが呼び出されたオブジェクトの新しい長さプロパティ。