For Loop y Write en JavaScript [duplicado]

Posible duplicado:
La forma más segura de recorrer un objeto Javascript

Tengo este fragmento de código codificado en JavaScript y me gustaría saber si es posible hacerlo dinámico con un bucle for. Mi problema es que no sé exactamente cómo generar los valores en el archivo JavaScript.

function getEventData() {
    return {
        events: [
        {
        "id":1,
        "start": new Date(year, month, day, 12),
        "end": new Date(year, month, day, 13, 30),
        "title":"Check Up"
        },
        {
        "id":2,
        "start": new Date(year, month, day, 14),
        "end": new Date(year, month, day, 14, 45),
        "title":"Free Trial",
        readOnly: true
        },
        {
        "id":3,
        "start": new Date(year, month, day + 1, 17),
        "end": new Date(year, month, day + 1, 17, 45),
        "title": "Consultant"
        },
        {
        "id":4,
        "start": new Date(year, month, day - 1, 8),
        "end": new Date(year, month, day - 1, 9, 30),
        "title":"Check Up"
        }
     ]
    };
}

Ese es el código JavaScript codificado. ¿Es posible recorrer una lista y generar los valores de esta manera?

for(var i = 0; i < listEvents.lenght; i++)
        {
            {
             "id": listEvents[i].Id,
            "start": listEvents[i].Start,
            "end": listEvents[i].End,
            "title": listEvents[i].Title
            },
        }

Muchas gracias por su ayuda... muy apreciada.

preguntado el 22 de mayo de 12 a las 09:05

Bueno, por supuesto que puede hacerlo dinámico, pero listEvents ya contiene sus eventos. ¿Por qué desea recorrer los valores y asignarlos nuevamente a otro objeto? -

2 Respuestas

¿Algo como esto?

var result = { events: [] };

for(var i = 0; i < listEvents.length; i++)
{
    result.events.push ({
         "id": listEvents[i].Id,
        "start": listEvents[i].Start,
        "end": listEvents[i].End,
        "title": listEvents[i].Title
        });
}

contestado el 22 de mayo de 12 a las 09:05

Esto fue muy útil ¡Gracias! - cristiano agio

Bueno, parece que tiene que crear todos sus "eventos" en algún momento, por lo que hacerlo de la segunda manera que muestra no tiene mucho sentido, ya que primero tendría que completar la matriz "listEvents".

Una forma de hacer que el código sea un poco más ordenado sería usar una función constructora como esta:

var Event = function(id, start, end, title) {
    this.id = id;
    this.start = start;
    this.end = end;
    this.title = title;
    return this;
}

var getEventData = function () {
    return {
        events : [
            new Event("1", new Date(...), new Date(...), "title"),
            new Event("2", new Date(...), new Date(...), "title"),
            new Event("3", new Date(...), new Date(...), "title")
        ]
    }
}

contestado el 22 de mayo de 12 a las 10:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.