用于JavaScript中的循环和写入

时间:2012-05-22 08:49:39

标签: javascript loops

  

可能重复:
  Safest Way to Loop Over Javascript Object

我在JavaScript中有这段硬编码的代码片段,我想知道是否可以通过for循环使其动态化。我的问题是我不知道如何输出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"
        }
     ]
    };
}

这是硬编码的JavaScript代码。是否可以遍历列表并输出如下所示的值:

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

非常感谢你的帮助..非常感谢。

2 个答案:

答案 0 :(得分:1)

这样的东西?

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
        });
}

答案 1 :(得分:0)

好吧,看起来你必须在某个时间点创建所有“事件”,所以以你显示的第二种方式做这个没有多大意义,因为你必须首先填充“listEvents”数组

使代码更整洁的一种方法是使用类似的构造函数:

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")
        ]
    }
}