用于对象中重复的javascript

javascript for repeats in object

本文关键字:javascript 对象 用于      更新时间:2024-06-08

嘿,伙计们,我有个问题:)

结果是错误的。我正在筛选个人代码和日期。每个人都有一个数组。你可以从dateArr中看到它。在dateArr中,您可以看到2个不同的数组。这实际上是两个不同的个人。在vm.resReport中有这些人员的日期,我想取vm.resReport中的人员值及其人员代码等于dateArr的人员。并将这些值更新为Arr

for(var item in vm.resReport){
    for(var k=0;k < Object.keys(vm.dateArr).length;k++){
        for(var days in vm.dateArr[k].Days){
            if(vm.resReport[item].mDate==vm.dateArr[k].Days[days].FullDate){
                for(var per in vm.resReport[item].Details){
                    if(vm.dateArr[k].PersonnelCode==vm.resReport[item].Details[per].PersonnelCode){
                        console.log(vm.resReport[item].Details[per].PersonnelFirstName);
                        vm.dateArr[k].Days[days].PersonnelCode=[];
                        vm.dateArr[k].Days[days].PersonnelCode[vm.dateArr[k].PersonnelCode]=vm.resReport[item].Details[per].PersonnelCode;
                    }
                }
            }
        } 
    }
}

我的问题是,在第二次重复中。for圆实际上是有效的,但无论k是什么,它都会一起重复,但它需要完成第一个k元素,而不是另一个。但它只是一起重复。

我该如何解决这个问题?谢谢:)干杯!

编辑:在这里我的对象

    {
0:{Days:Array[30],PersonnelCode:"PRS_001" PersonnelFirstName:"Güvenc" PersonnelLastName:"Vural"},
1:{Days:Array[30],PersonnelCode:"PRS_111" PersonnelFirstName:"Timur" PersonnelLastName:"Hacizade"}
}

这里是我的resReport对象;

[
  {
    "Total": 1,
    "mDate": "2016-02-15",
    "Details": [
      {
        "PersonnelFirstName": "Güvenc",
        "PersonnelLastName": "Vural",
        "PersonnelCode": "PRS_001",
        "Total": 1
      }
    ]
  },
  {
    "Total": 1,
    "mDate": "2016-03-08",
    "Details": [
      {
        "PersonnelFirstName": "Güvenc",
        "PersonnelLastName": "Vural",
        "PersonnelCode": "PRS_001",
        "Total": 1
      }
    ]
  },
  {
    "Total": 1,
    "mDate": "2016-04-08",
    "Details": [
      {
        "PersonnelFirstName": "Güvenc",
        "PersonnelLastName": "Vural",
        "PersonnelCode": "PRS_001",
        "Total": 1
      }
    ]
  },
  {
    "Total": 3,
    "mDate": "2016-04-09",
    "Details": [
      {
        "PersonnelFirstName": "Güvenc",
        "PersonnelLastName": "Vural",
        "PersonnelCode": "PRS_001",
        "Total": 2
      },
      {
        "PersonnelFirstName": "Timur",
        "PersonnelLastName": "Hacizade",
        "PersonnelCode": "PRS_111",
        "Total": 1
      }
    ]
  },
  {
    "Total": 1,
    "mDate": "2016-04-13",
    "Details": [
      {
        "PersonnelFirstName": "Güvenc",
        "PersonnelLastName": "Vural",
        "PersonnelCode": "PRS_001",
        "Total": 1
      }
    ]
  },
  {
    "Total": 1,
    "mDate": "2016-04-14",
    "Details": [
      {
        "PersonnelFirstName": "Güvenc",
        "PersonnelLastName": "Vural",
        "PersonnelCode": "PRS_001",
        "Total": 1
      }
    ]
  }
]

这是我的日期Arr对象

[
  {
    "PersonnelCode": "PRS_001",
    "PersonnelFirstName": "Güvenc",
    "PersonnelLastName": "Vural",
    "Days": [
      {
        "Day": "01",
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-01",
        "ID": 92,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": "02",
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-02",
        "ID": 93,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": "03",
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-03",
        "ID": 94,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": "04",
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-04",
        "ID": 95,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": "05",
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-05",
        "ID": 96,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": "06",
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-06",
        "ID": 97,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": "07",
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-07",
        "ID": 98,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": "08",
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-08",
        "ID": 99,
        "StatusName": 1,
        "Popover": false,
        "Update": false,
        "Details": [
          {
            "PersonnelFirstName": "Güvenc",
            "PersonnelLastName": "Vural",
            "PersonnelCode": "PRS_001",
            "Total": 1
          }
        ]
      },
      {
        "Day": "09",
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-09",
        "ID": 100,
        "StatusName": 3,
        "Popover": false,
        "Update": false,
        "Details": [
          {
            "PersonnelFirstName": "Güvenc",
            "PersonnelLastName": "Vural",
            "PersonnelCode": "PRS_001",
            "Total": 2
          },
          {
            "PersonnelFirstName": "Timur",
            "PersonnelLastName": "Hacizade",
            "PersonnelCode": "PRS_111",
            "Total": 1
          }
        ]
      },
      {
        "Day": 10,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-10",
        "ID": 101,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 11,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-11",
        "ID": 102,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 12,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-12",
        "ID": 103,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 13,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-13",
        "ID": 104,
        "StatusName": 1,
        "Popover": false,
        "Update": false,
        "Details": [
          {
            "PersonnelFirstName": "Güvenc",
            "PersonnelLastName": "Vural",
            "PersonnelCode": "PRS_001",
            "Total": 1
          }
        ]
      },
      {
        "Day": 14,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-14",
        "ID": 105,
        "StatusName": 1,
        "Popover": false,
        "Update": false,
        "Details": [
          {
            "PersonnelFirstName": "Güvenc",
            "PersonnelLastName": "Vural",
            "PersonnelCode": "PRS_001",
            "Total": 1
          }
        ]
      },
      {
        "Day": 15,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-15",
        "ID": 106,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 16,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-16",
        "ID": 107,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 17,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-17",
        "ID": 108,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 18,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-18",
        "ID": 109,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 19,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-19",
        "ID": 110,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 20,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-20",
        "ID": 111,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 21,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-21",
        "ID": 112,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 22,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-22",
        "ID": 113,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 23,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-23",
        "ID": 114,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 24,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-24",
        "ID": 115,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 25,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-25",
        "ID": 116,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 26,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-26",
        "ID": 117,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 27,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-27",
        "ID": 118,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 28,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-28",
        "ID": 119,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 29,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-29",
        "ID": 120,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 30,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-30",
        "ID": 121,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      }
    ],
    "Update": false
  },
  {
    "PersonnelCode": "PRS_111",
    "PersonnelFirstName": "Timur",
    "PersonnelLastName": "Hacizade",
    "Days": [
      {
        "Day": "01",
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-01",
        "ID": 92,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": "02",
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-02",
        "ID": 93,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": "03",
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-03",
        "ID": 94,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": "04",
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-04",
        "ID": 95,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": "05",
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-05",
        "ID": 96,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": "06",
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-06",
        "ID": 97,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": "07",
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-07",
        "ID": 98,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": "08",
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-08",
        "ID": 99,
        "StatusName": 1,
        "Popover": false,
        "Update": false,
        "Details": [
          {
            "PersonnelFirstName": "Güvenc",
            "PersonnelLastName": "Vural",
            "PersonnelCode": "PRS_001",
            "Total": 1
          }
        ]
      },
      {
        "Day": "09",
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-09",
        "ID": 100,
        "StatusName": 3,
        "Popover": false,
        "Update": false,
        "Details": [
          {
            "PersonnelFirstName": "Güvenc",
            "PersonnelLastName": "Vural",
            "PersonnelCode": "PRS_001",
            "Total": 2
          },
          {
            "PersonnelFirstName": "Timur",
            "PersonnelLastName": "Hacizade",
            "PersonnelCode": "PRS_111",
            "Total": 1
          }
        ]
      },
      {
        "Day": 10,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-10",
        "ID": 101,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 11,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-11",
        "ID": 102,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 12,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-12",
        "ID": 103,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 13,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-13",
        "ID": 104,
        "StatusName": 1,
        "Popover": false,
        "Update": false,
        "Details": [
          {
            "PersonnelFirstName": "Güvenc",
            "PersonnelLastName": "Vural",
            "PersonnelCode": "PRS_001",
            "Total": 1
          }
        ]
      },
      {
        "Day": 14,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-14",
        "ID": 105,
        "StatusName": 1,
        "Popover": false,
        "Update": false,
        "Details": [
          {
            "PersonnelFirstName": "Güvenc",
            "PersonnelLastName": "Vural",
            "PersonnelCode": "PRS_001",
            "Total": 1
          }
        ]
      },
      {
        "Day": 15,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-15",
        "ID": 106,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 16,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-16",
        "ID": 107,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 17,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-17",
        "ID": 108,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 18,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-18",
        "ID": 109,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 19,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-19",
        "ID": 110,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 20,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-20",
        "ID": 111,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 21,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-21",
        "ID": 112,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 22,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-22",
        "ID": 113,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 23,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-23",
        "ID": 114,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 24,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-24",
        "ID": 115,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 25,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-25",
        "ID": 116,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 26,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-26",
        "ID": 117,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 27,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-27",
        "ID": 118,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 28,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-28",
        "ID": 119,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 29,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-29",
        "ID": 120,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      },
      {
        "Day": 30,
        "Cls": "",
        "ClsStatus": "",
        "FullDate": "2016-04-30",
        "ID": 121,
        "StatusName": "NA",
        "Popover": false,
        "Update": false
      }
    ],
    "Update": false
  }
]

请检查解决方案,并告诉我它是否解决了问题。

for(var item in vm.resReport){
    var report = vm.resReport[item];
    for(var k=0;k < Object.keys(vm.dateArr).length;k++){
        var dateInfo = vm.dateArr[k];
        var days = dateInfo.Days;
        for(var day in days){
            var currDay = days[day];
            if(report.mDate==currDay.FullDate){
                for(var per in report.Details){
                    var detail = report.Details[per];
                    if(dateInfo.PersonnelCode==detail.PersonnelCode){
                        console.log(detail.PersonnelFirstName);
                        currDay.PersonnelCode=[];
                        currDay.PersonnelCode[dateInfo.PersonnelCode]=detail.PersonnelCode;
                    }
                }
            }
        }   
    }
}

如果希望在所有k = 1之前完成所有k = 0,依此类推,则需要反转循环的嵌套。

for(var k=0;k < Object.keys(vm.dateArr).length;k++){
    for(var item in vm.resReport){
        ...
    }
}