簡體   English   中英

具有整數鍵的稀疏Javascript數組是否仍按鍵排序?

[英]Does a sparse Javascript array with whole number keys remain sorted by key?

例如:

var a = [];
a[5] = 'five';
a[2] = 'two';
a[11] = 'eleven';
a[210] = 'two-ten';
a[4] = 'four';
a[56] = 'fifty-six';
a[1] = 'one';
a[39] = 'thirty-nine';

for( var i in a ) {
    if( a.hasOwnProperty(i) ) {
        console.log(i+":"+a[i]);
    }
}

結果如下(對於一些我方便測試的瀏覽器。)

1:one
2:two
4:four
5:five
11:eleven
39:thirty-nine
56:fifty-six
210:two-ten

這是標准的,可靠的行為嗎?

它們總是按順序排列,是的,但標准(據我所知)最終將所有中間索引設置為未定義。

編輯:如果您將其初始化為對象,使用花括號,而不是方括號(對於數組),您可能會在瀏覽器之間獲得不規則的行為。

ECMA-262未指定枚舉順序。

有些瀏覽器以有序的方式實現它們,有些則不像V8那樣節省內存。

暫無
暫無

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

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