首页 > 解决方案 > 如何将对象推入循环内的嵌套数组中?

问题描述

我正在使用 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);
       }
    });

如果这发现 2 名员工的工作,他们被添加,并且当我在添加第二个对象后观察 wo.doc 对象时,添加的 2 个对象与最后一个对象相同。

标签: javascriptarraysangularjsforeach

解决方案


在循环中创建一个新对象。

   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);
       }
    });

推荐阅读