嘗試使用一些不同的方法來生成JavaScript數組時,我偶然發現了一個奇怪的結果。使用map
到push
的自我引用數組(DEMO):陣列自參考地圖 - 非常奇怪的結果
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
到push
的自我引用數組(DEMO):陣列自參考地圖 - 非常奇怪的結果
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
返回
在該方法被調用該對象的新length屬性遞增。
「a」的一個更好的選擇和逗弄你的'地圖'可能是有益的:http://jsfiddle.net/ambiguous/kchXW/1/ –