Javascript 如何将对象推入循环中的嵌套数组中?

Javascript 如何将对象推入循环中的嵌套数组中?,javascript,arrays,angularjs,foreach,Javascript,Arrays,Angularjs,Foreach,我正在使用angularjs foreach,希望找到要加载到另一个对象数组中的数据对象。 执行此操作时,似乎我正在添加变量,所有添加的对象都会更改为最后一个变量值 var p = {}; angular.forEach(d, function(personnel, index){ if(wo.doc.job === personnel.job){ p["EmployeeID"] = personnel.EmployeeID;

我正在使用angularjs foreach,希望找到要加载到另一个对象数组中的数据对象。 执行此操作时,似乎我正在添加变量,所有添加的对象都会更改为最后一个变量值

   var p = {};
   angular.forEach(d, function(personnel, index){
       if(wo.doc.job === personnel.job){
          p["EmployeeID"] = personnel.EmployeeID;
          p["Number"] = personnel.Number;
          wo.doc.personnel.push(p);
          console.log(personnel);
       }
    });

如果发现一个作业有两名员工,则会添加他们,当我在添加第二个对象后观察wo.doc对象时,添加的两个对象与最后一个对象相同。

在循环中创建一个新对象

   angular.forEach(d, function(personnel, index){
       if(wo.doc.WorkOrderDetailID === personnel.PrimeWorkOrderNum){
          var p = {EmployeeID: personnel.EmployeeID, Number: personnel.Number};
          wo.doc.personnel.push(p);
       }
    });

谢谢,为什么工作方式不同呢?在原始代码中,您只创建了一个对象。在这里,每次迭代创建一个对象。每次迭代都需要一个对象。是的,谢谢你,谢谢你