尝试使用一些不同的方法来生成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/ –