-2

重複の可能性:
Javascriptオブジェクトをループする最も安全な方法

このハードコードされたコードスニペットを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
            },
        }

あなたの助けをどうもありがとう..大いに感謝します。

4

2 に答える 2

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
        });
}
于 2012-05-22T08:54:00.827 に答える
0

ある時点ですべての「イベント」を作成する必要があるようです。最初に「listEvents」配列にデータを入力する必要があるため、表示している2番目の方法で作成してもあまり意味がありません。

コードを少し整理する1つの方法は、次のようなコンストラクター関数を使用することです。

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")
        ]
    }
}
于 2012-05-22T09:00:24.787 に答える