Estoy tratando de agregar el valor devuelto de la función test() en un resultado variable, pero += no parece funcionar. Me sale el error "inicialización variable no válida". También intenté reemplazar i++ por i+= que tampoco funcionó. ¿Quizás estoy totalmente equivocado y debería usar un bucle while? Estoy bastante perdido ...

Quiero que 'resultado' se vea así:

var result = no no no 0no 0no no;

Etc (sin espacios en blanco, por supuesto).

Cualquier ayuda muy apreciada! Gracias

function test(no){

            if (no <= 15){              
                return '0' + parseInt(no);
            }

            else {              
                return parseInt(no); 
            }       
}


        for(i = 0; i < pics.length; i++){

            var b = pics[i].value;

            var result += test(b);

        }
1
patad 18 nov. 2009 a las 22:23

3 respuestas

La mejor respuesta

Cada vez que se inicia tu ciclo, var result desaparece. Necesitas moverlo fuera del ciclo:

var result = ''; // lives outside loop
for(i = 0; i < pics.length; i++)
{
    var b = pics[i].value;
    result += test(b);
}
5
GManNickG 18 nov. 2009 a las 19:26

Está viendo ese error porque está utilizando el operador de incremento en una variable recientemente declarada. Use '=':

for(i = 0; i < pics.length; i++)
{
   var b = pics[i].value;
   var result = test(b);
}

Aunque, como señaló GMain, la solución real es mover la declaración de la variable 'resultado' fuera del ciclo for.

0
Philip Wallace 18 nov. 2009 a las 19:35

Necesita inicializar el resultado como una cadena, no como una var.

E.g.

Fuera del circuito

Resultado de cadena = cadena.Empty;

For loop

Resultado + = prueba (b);

Final para loop

0
Peter 18 nov. 2009 a las 19:26