Bug en firefox al ordenar arrays

images Si tenemos el siguiente código javascript:

var x;
var mycars = new Array();
mycars[2] = "Saab";
mycars[1] = "Volvo";
mycars[0] = "BMW";

for (x in mycars)
{
document.write(mycars[x] + "<br />");
}





Esto sacaría por pantalla lo siguiente:



BMW – Volvo – Saab



Sin embargo si la diferencia de índices es muy grande firefox interpreta los índices como cadenas (el resto de navegadores los continúa ordenando bien), por ejemplo si fuera:




var mycars = new Array();
mycars[1500] = "Saab";
mycars[30] = "Volvo";
mycars[20] = "BMW";





En vez de sacar por pantalla BMW – Volvo – Saab sacaría Saab – Volvo – BMW



¡Curioso!

Comentarios

anlhp ha dicho que…
Pues si que es curioso, no obstante originalmente Javascript no garantiza el orden de los elementos de un Array al utilizar for in por su propia naturaleza de objeto, por lo que la norma es utilizar for cuando el orden interesa.
si lo cierto que es muy curioso, en realidad lo que me extraña es que algunos navegadores como el Chrome si lo ordenen con un for in. Se comprueba cada vez más que hay navegadores más inteligentes que otros, quedaría ver ¿qué hace Internet Explorer?