Premetto che è poco che utilizzo Javascript.

Ho un problema con l'utilizzo di un array nel mio script, riporto di seguito la parte di codice:

function applyQuestion(xobj){
var y = new Array ("id", "pollid", "pageid", "q_published", "q_title", "q_type", "q_oblig",
"q_multisize", "q_hide_results", "ordering");
var z = new Array();

for (var el in y){
z[el] = encodeURIComponent(document.getElementById(y[el]).value);}

var multi = document.getElementById("multiIds").value;
x_applyElement(y, z, multi, dummy);
}

Il problema è che il ciclo FOR viene ripetuto 11 volte invece di 10 volte come dovrebbe essere dato che l'array Y da 10 valore. Inserendo una funzione ALERT per visualizzare il contenuto di Y ho notato che l'11 valore contenuto nell'array è una funzione del tipo:

function (start, length) {
start = start || 0;
if (start < 0) {
start = this.length + start;
............. ecc ecc

Se invece di utilizzare for (var el in y) utilizzo for (el=0; el<=y.length-1; el++) invece il ciclo For è ripetuto correttamente 10 volte ma ho il problema che la funzione encodeURIComponent(document.getElementById(y[el]).value);}
mi restituisce tutti valori UNDEFINED mentre se uso for (var el in y) ottengo i valori giusti.

Qualcuno può darmi una mano a capire dove sbaglio è una settimana che provo a farlo funzionare senza risultato.