在javascript中奇怪的关联数组行为

如果我在chrome控制台上执行下面的代码,那么我得到的答案是关联数组:

var arr= []; var i = 1; for(var j = 1; j < 3; j++) arr[j]=j;console.log(arr); 

答案: [1: 1, 2: 2]

但是,当我执行使用节点: [ , 1, 2 ]

为什么有这么差别? 据我所知两个正在使用V8。

Firefox说

 Array [ <1 empty slot>, 1, 2 ] 

IE Edge说

 [object Array][undefined, 1, 2] 

而且,他们都是正确的

Chrome只是不报告空索引0

节点显示索引0是空的

Firefox正在告诉你到底发生了什么事

尝试这个:

 var arr= [];var i = 1; for(var j = 1; j < 3; j++) arr[j*3]=j+3;console.log(arr); 

火狐:

 Array [ <3 empty slots>, 4, <2 empty slots>, 5 ] 

节点

 [ , , , 4, , , 5 ] 

IE Edge

 [object Array][undefined, undefined, undefined, 4, undefined, undefined, 5] 

 [3: 4, 6: 5]