0

私は3つの配列を持っています:

var dates = ['07/31/2013', '08/01/2013', '08/02/2013', '08/03/2013', '08/04/2013', '08/05/2013', '08/06/2013', '08/07/2013'];

日付配列には、1 週間の範囲内のすべての日付が含まれます。

var meetingdates = ['07/31/2013', '08/02/2013', '08/03/2013', '08/04/2013', '08/05/2013', '08/07/2013'];

meetingdates 配列には、1 つ以上の会議がある日付が含まれています。

var meetings = ['1', '3', '2', '4', '1', '5']

ミーティング配列には、 からの日付のミーティングの数が含まれていますmeetingdates

dates配列と配列を比較したいのですがmeetings、 からのエントリがmeetingsarray存在する場合、datesその日付に属する会議の数を新しい配列に入れたいです。一致しない場合は 0 が挿入されます。

したがって、meetingsarraydatesこれと比較した後、最終結果が得られます。

 meetingsPerDate =  ['1', '0', '3', '2', '4', '1', '0', '0'];

私は次のようにこれを解決しようとしましたfor-loop:

if(dates[y] == meetingdates [y]){
    meetingsPerDate [y] = meetings [y];
    }else {
         meetingsPerDate[y] = 0;
          }  
     }

両方の配列が同じパターンに従っていないため、いくつかの数値が欠落することはわかっていますが、これを解決する方法は本当にわかりません。

私の問題をうまく説明できたと思いますが、そうでない場合はお知らせください。

どんな助けでも大歓迎です、

ありがとう!

4

2 に答える 2

1

配列の代わりにオブジェクトを使用します。

var meetings = {
    '07/31/2013': 1,
    '08/02/2013': 3,
    '08/03/2013': 2,
    '08/04/2013': 4,
    '08/05/2013': 1,
    '08/07/2013': 5
}

そして、新しい日付をそれに追加するだけです:

var date;

for (var i = 0; i < dates.length; i++) {
    date = dates[i];

    if (date in meetings) {
        meetings[date] += 1;
    } else {
        meetings[date] = 1;
    }
}
于 2013-07-30T23:37:56.557 に答える