es correcto, cuando existe un solo campo bajo un nombre, no se crea el
array. a modo de referencia: tecnicamente no es un array, es una coleccion de elementos HTML (objeto HTMLCollection) pero se podria decir que se comporta como un array. pero esto sucede cuando mas de un elemento contiene el mismo valor en el atributo
name. para la solucion hay varias alternativas. a mi juicio, la mas sensata -porque sospecho que luego vas a iterar los campos- es que uses la funcion
document.getElementsByName el cual siempre devuelve una coleccion de elementos, existan o no elementos con el valor indicado como argumento.