delete no es lo adecuado para los arrays. de hecho, cuando usas delete lo que hace es asignar undefined por lo que la longitud del array se mantiene. debes usar pop, shift, o splice. aca puedes ver la explicacion de las funciones,
http://www.w3schools.com/jsref/jsref_obj_array.asp. si bien recuerdo, alguna vez se llego a discutir este asunto en el foro. realiza una busqueda.