entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Como almacenar datos en un arreglo y luego recorrerlo en JavaScript

Hola tengo una duda, tengo un problema en un ejemplo con array, resulta que tengo que rellenar un array con datos que un usuario ingresara mediante un input, el problema radica en el js, declaro mi array, le indico que contendra los valores que el usuario valla ingresando, luego lo recorro, pero resulta que parace que no esta agregando los datos, solo agrega el primer dato, ya que veo que el indice sigue siendo 0, a un que siga mostrando lo que el usuario ingrese en el imput. Osea que nadamas esta cambiando el valor anterior por el nuevo, y ese es el que sigue mostrando. Y lo que nesecito es que se valla rellenando y mostrarlo en en html con su indice.

function usoArray(parametro) {

    //declaramos una variable y le asignamos el valor que se recoge de parametro
    var valor_recivido = parametro.value;

    //Declaramos un array y le agregamos los valos que estamos ingresando
    var array = [valor_recivido] ;

    //Recorremos el array para ir mostrando lo que se va ingresando

    for ( i = 0; i < array.length; i++) {
         var resultado = array[i];
         imprimir(resultado);   
    }

}

function imprimir(valor){

    document.getElementById("resultado").innerHTML += valor + "<br>";
}

De antemano muchas gracias, he pensando que tal vez me haga falta otro for, pero por ello acudo a los expertos con Talento Digital.

2 Respuestas

1voto

GusGarsaky Puntos5480

En JavaScript, los arrays son dinámicos (similar a List de Java y C#), es decir, puedes agregar valores por tiempo indefinido mientras te quede memoria RAM.

Para agregar un elemento al array se usa el método push:

var array = new Array();

array.push(5);
array.push('a');
array.push(new Array("a", 5, "d"));

Y hay varias formas de recorrer, con un for in o con un for normal:

for(var i in array) {
    console.log(array[i]); // elemento actual
}

for(var i=0; i<array.length; i++) {
    console.log(array[i]); // elemento actual
}

1voto

versce123mx comentado

gracias me sirvio mucho ;)

0voto

Leonardo-Tadei Puntos227320

Hola @versce123mx,

tenés un problema de ámbito de variables y en la asignación del valor en tu código y por eso no se agregan los elementos al array.

Al definir con var el array adentro de la función, cada vez que se ejecuta el vector es un vector nuevo. Para que sea un vector que no desaparezca cada vez que termina la función, tenés que declararlo fuera:

var array = new Array;
function usoArray(parametro) {
...
// adentro no lo vuelvo a declarar, solo lo uso
...
}

Luego la asignación tiene que hacerse en una ubicación vacía. En dónde dice:

var array = [valor_recibido] ;

debería ser:

array.push(valor_recibido);

Saludos cordiales!

0voto

versce123mx comentado

Muchas gracias Sr. Lleonardo-Tadei me ayudo demaciado, ya que me indico el por que no funcionava el array, ya que se generava un nuevo array cada vez que se llamava a la funcion. Aunque iMitsu tambien fue una buena respuesta, la de usted fue mas clara. gracias a los dos, por averme ayudado, ya dudava de mis capacidades con los arrays. ;)

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta