簡體   English   中英

javascript中奇怪的關聯數組行為

[英]Strange associative array behaviour in javascript

如果我在chrome控制台上執行下面的代碼然后,我得到了作為關聯數組的答案:

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

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

但是當我使用node執行時: [ , 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]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM