Como devo iterar sobre uma matriz esparsa na ordem do índice?

Eu tenho uma matriz esparsa, cujo conteúdo não é garantido para ser inserido na ordem do índice, mas precisa ser iterado na ordem do índice. Para percorrer uma matriz esparsa, entendo que você precisa usar uma instrução for..in.

No entanto, de acordo comEste artigo:

Não há garantia de que para ... in retornará os índices em qualquer ordem específica

Masperguntas stackoverflow como este sugerem que, embora as ordens de propriedade do objeto não sejam garantidas, as ordens de matriz são:

Se a ordem das propriedades nos objetos não é garantida no JavaScript, é necessário usar uma matriz.

I testou isso nas últimas versões do Chrome, Firefox e IE.

<ol id="items"></ol>
var list = [];

function addItem(index) {
    list[index] = { idx : index };
}

var insertOrder = [ 8, 1, 9, 2, 10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15 ];

for ( var i = 0; i < 15; i++ ) {
    addItem(insertOrder[i]);
}

for(var item in list) {
    $("#items").append("<li>" + list[item].idx + "</li>");
}

Todos parecem honrar a ordem do índice, então posso confiar que esse sempre seja o caso? Caso contrário, como melhor colocá-los em ordem de índice?

questionAnswers(2)

yourAnswerToTheQuestion