Javascript 对象键未按预期填充

Javascript 对象键未按预期填充,javascript,jquery,oop,Javascript,Jquery,Oop,请参见下面的对象结构。我试图将每个日期和一天中30分钟半小时间隔的固定数组进行比较,然后创建一个新对象,其中“handled”由 平日 半小时间隔 下面的内容确实映射到了“hhObj”中的正确时间间隔,但它只是每半小时聚合一次,然后在每个“工作日”重复 //我要构建的主对象数组 var hhObj = []; //一天中所有半小时间隔的固定数组 var halfHours = ["00:00", "00:30", "01:00", "01:30", "02:00", "02:30", "03:

请参见下面的对象结构。我试图将每个日期和一天中30分钟半小时间隔的固定数组进行比较,然后创建一个新对象,其中“handled”由

  • 平日
  • 半小时间隔
  • 下面的内容确实映射到了“hhObj”中的正确时间间隔,但它只是每半小时聚合一次,然后在每个“工作日”重复

    //我要构建的主对象数组

    var hhObj = [];
    
    //一天中所有半小时间隔的固定数组

    var halfHours = ["00:00", "00:30", "01:00", "01:30", "02:00", "02:30", "03:00", "03:30", "04:00", "04:30", "05:00", "05:30", "06:00", "06:30", "07:00", "07:30", "08:00", "08:30", "09:00", "09:30", "10:00", "10:30", "11:00", "11:30", "12:00", "12:30", "13:00", "13:30", "14:00", "14:30", "15:00", "15:30", "16:00", "16:30", "17:00", "17:30", "18:00", "18:30", "19:00", "19:30", "20:00", "20:30", "21:00", "21:30", "22:00", "22:30", "23:00", "23:30"]
    
    //为每半小时的间隔创建具有密钥对值的对象

      var intervalObj = [];
    
      for (i = 0; i < halfHours.length; i++) {
        intervalObj.push({
            interval: halfHours[i],
            answered: 0,
            handled: 0
        })
      }
    
    当前结果(已处理的结果求和,但在所有工作日的相同时间间隔内复制):


    你能澄清一下你到底想要什么吗?我看了一眼,不知道你期望结果是什么。也许您可以提供更多信息:-)我在上面的代码中添加了预期的输出
      for (i = 1; i <= 5; i++) {
        hhObj.push({
                day: i,
                data: intervalObj
        })
      }
    
      var test = [
    {"DateTime":"5/1/18 03:00:00 AM","Answered":"0","handled":"3"},
    {"DateTime":"5/3/18 10:00:00 AM","Answered":"0","handled":"1"},
    {"DateTime":"5/2/18 07:00:00 AM","Answered":"0","handled":"25"},
    {"DateTime":"5/5/18 12:00:00 AM","Answered":"0","handled":"2"},
    {"DateTime":"5/10/18 12:00:00 AM","Answered":"0","handled":"6"},
    {"DateTime":"5/12/18 07:00:00 AM","Answered":"0","handled":"1"},
    {"DateTime":"5/13/18 12:00:00 AM","Answered":"0","handled":"12"},
    {"DateTime":"5/1/18 07:00:00 AM","Answered":"0","handled":"5"},
    {"DateTime":"5/6/18 10:00:00 AM","Answered":"0","handled":"1"},
    {"DateTime":"5/7/18 12:00:00 AM","Answered":"0","handled":"2"},
    {"DateTime":"5/3/18 12:00:00 AM","Answered":"0","handled":"0"},
    {"DateTime":"5/18/18 06:00:00 AM","Answered":"0","handled":"14"},
    {"DateTime":"5/12/18 12:30:00 AM","Answered":"0","handled":"1"}]
    
    
        for (row in test) {
            var dt = test[row].DateTime;
                dt = new Date(dt)
            var weekDay = parseInt(dt.getDay());
            let hh = dt.getHours();
            if(hh < 10) {
                hh = '0' + hh
            }
            let mm = dt.getMinutes();
            if(mm == 0) {
                mm = '0' + mm;
            }
    
            var timeInterval = hh + ':' + mm;
            var answered = parseInt(test[row].CallsAnswered);
            var handled = parseInt(test[row].handled);
    
        for(i = 0; i < 5; i++) {
            for(int in hhObj[i].data) {
    
                if(weekDay == hhObj[i].day && hhObj[i].data[int].interval == timeInterval) {
    
                    var idx = parseInt(hhObj[i].day) - 1;
    
                    hhObj[idx].data[int].handled += parseInt(test[row].handled);                    
                    }
                }
            }
        }
    
    hhObj = [{
        day: 1,
        data: [{
            interval: "00:00",
            handled: 10
        },
        {
            interval: "00:30",
            handled: 5
        }....]
    },
    {
        day: 2,
        data: [{
            interval: "00:00",
            handled: 2
        },
        {
            interval: "00:30",
            handled: 0
        }....]
    }....]
    
    hhObj = [{
        day: 1,
        data: [{
            interval: "00:00",
            handled: 12
        },
        {
            interval: "00:30",
            handled: 5
        }....]
    },
    {
        day: 2,
        data: [{
            interval: "00:00",
            handled: 12
        },
        {
            interval: "00:30",
            handled: 5
        }....]
    }....]