Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 数组自引用映射-非常奇怪的结果_Javascript_Arrays_Map_Self Reference - Fatal编程技术网

Javascript 数组自引用映射-非常奇怪的结果

Javascript 数组自引用映射-非常奇怪的结果,javascript,arrays,map,self-reference,Javascript,Arrays,Map,Self Reference,在尝试一些生成JavaScript数组的不同方法时,我偶然发现了一个奇怪的结果。使用map到push一个自引用数组(): 我得到以下结果(在Chrome中): 有人能解释为什么吗?这与push的返回值是新长度有关。不知道为什么它会增加3 返回 调用方法的对象的新长度属性 对于a中的每个元素,将使用该元素、该元素的索引和正在遍历的数组调用push。对于数组中的每个元素,我们添加这三个附加元素。这说明原始数组中的每个元素的长度增加了三倍。推送的结果是添加元素后数组的长度,因此生成的数组(来自map

在尝试一些生成JavaScript数组的不同方法时,我偶然发现了一个奇怪的结果。使用
map
push
一个自引用数组():

我得到以下结果(在Chrome中):


有人能解释为什么吗?

这与
push
的返回值是新长度有关。不知道为什么它会增加3

返回
调用方法的对象的新长度属性


对于
a
中的每个元素,将使用该元素、该元素的索引和正在遍历的数组调用
push
。对于数组中的每个元素,我们添加这三个附加元素。这说明原始数组中的每个元素的长度增加了三倍。推送的结果是添加元素后数组的长度,因此生成的数组(来自
map
)是一个数组,在每次推送回调完成后保存
a
数组的长度


有关和,请参阅文档。

A
选择更好的值,并且挑逗您的
地图可能会有成效:谢谢。在你的答案和@mu的提琴样本之间,一切都被澄清了。我没有一个完整的图片在我的脑海中的代码正在做什么:)
a=[1,1,1,1,1,1,1,1,1,1];
a=a.map(a.push,a);
[13,16,19,22,25,28,31,34,37,40]