Javascript: iterando sobre la matriz con claves no consecutivas

Necesito iterar sobre una matriz para la cual las claves no son consecutivas:

var messages = new Array();
messages[0] = "This is the first message";
messages[3] = "This is another message";

Obviamente, usar el índice de un bucle for no funcionará, ya que depende de que las claves sean secuenciales:

for (var i=0 ; i<messages.length ; i++) {
    alert(messages[i]); // Will only alert the first message, as i is never equal to 3
}

¿Cuál es la forma canónica de lidiar con esto, ya quela sintaxis for-each no está pensada para iterar sobre valores en una matriz en javascript? Gracias

Respuestas a la pregunta(14)

Su respuesta a la pregunta