Javascript 对象。推送(数组)不工作

Javascript 对象。推送(数组)不工作,javascript,angularjs,arrays,for-loop,Javascript,Angularjs,Arrays,For Loop,我使用for循环一个接一个地获取单位,在循环内部,我获取如下所示的卷数组。现在我想把这个数组推到相应的单元上,所以我使用了push,但这里我得到了一个错误 我的代码在下面 $scope.UnitDetails = [{ UnitId : "001" Unit1 : "A" Fields: [{"one" : "true","Isactive" : true }

我使用for循环一个接一个地获取单位,在循环内部,我获取如下所示的卷数组。现在我想把这个数组推到相应的单元上,所以我使用了push,但这里我得到了一个错误

我的代码在下面

$scope.UnitDetails = [{
                       UnitId : "001"
                       Unit1 : "A"
                       Fields: [{"one" : "true","Isactive" : true },
                                 {"two" : "false","Isactive" : true }
                               ]
                      },
                       {
                       UnitId : "002"
                       Unit1 : "B"
                       Fields: [{"one" : "true","Isactive" : true },
                                 {"two" : "false","Isactive" : true }
                               ]
                      }]
     for(i= 0; i < $scope.UnitDetails.length ; i++){     
                var volume = [];                
                volume.Volume_AL = eval($scope.VolumeFormula.AL);
                volume.Volume_BL = eval($scope.VolumeFormula.BL);
                volume.Volume_CL = eval($scope.VolumeFormula.CL);
                volume.Volume_DL = eval($scope.VolumeFormula.DL);
                $scope.UnitDetails[i].push(volume);
            }
我的预期:

  $scope.UnitDetails = [{
                           UnitId : "001"
                           Unit1 : "A"
                           Fields: [{"one" : "true","Isactive" : true },
                                     {"two" : "false","Isactive" : true }
                                   ]
                           volume : [ { 
                             Volume_CL:0,
                             Volume_EQ:12,
                             Volume_PH:54,
                             Volume_RW: 24
                                      }]
                          },
                          {
                           UnitId : "002"
                           Unit1 : "B"
                           Fields: [{"one" : "true","Isactive" : true },
                                     {"two" : "false","Isactive" : true }
                                   ]
                          volume : [ { 
                            Volume_CL:0,
                             Volume_EQ:12,
                             Volume_PH:54,
                             Volume_RW: 24
                                     }]
                          },
                        ]

为了获得所需的结果,您可以将
数组动态附加到
$scope.UnitDetails
的每个元素中:

for (var i = 0; i < $scope.UnitDetails.length; i++) {
    $scope.UnitDetails[i].volume = [{
        Volume_AL: eval($scope.VolumeFormula.AL),
        Volume_BL: eval($scope.VolumeFormula.BL),
        Volume_CL: eval($scope.VolumeFormula.CL),
        Volume_DL: eval($scope.VolumeFormula.DL)
    }];
}
for(变量i=0;i<$scope.UnitDetails.length;i++){
$scope.UnitDetails[i]。卷=[{
卷:评估($scope.VolumeFormula.AL),
体积:评估($scope.VolumeFormula.BL),
第四卷:评估($scope.VolumeFormula.CL),
卷DL:eval($scope.VolumeFormula.DL)
}];
}

备注:
eval
语句允许执行任意javascript代码,如果输入来自您的用户,您可能希望在将其传递给此函数之前确保它不包含任何恶意代码。或者最好不要使用
eval
。根据您的需求,您可能会找到一个更合适、更严格的功能来实现您的目标。例如,如果您希望只计算客户编写的数学表达式,您可能会发现一个专门为此目的而设计的库,而不是使用通用的
eval
语句。

为了获得所需的结果,您可以将
数组动态附加到
$scope.UnitDetails

for (var i = 0; i < $scope.UnitDetails.length; i++) {
    $scope.UnitDetails[i].volume = [{
        Volume_AL: eval($scope.VolumeFormula.AL),
        Volume_BL: eval($scope.VolumeFormula.BL),
        Volume_CL: eval($scope.VolumeFormula.CL),
        Volume_DL: eval($scope.VolumeFormula.DL)
    }];
}
for(变量i=0;i<$scope.UnitDetails.length;i++){
$scope.UnitDetails[i]。卷=[{
卷:评估($scope.VolumeFormula.AL),
体积:评估($scope.VolumeFormula.BL),
第四卷:评估($scope.VolumeFormula.CL),
卷DL:eval($scope.VolumeFormula.DL)
}];
}

备注:
eval
语句允许执行任意javascript代码,如果输入来自您的用户,您可能希望在将其传递给此函数之前确保它不包含任何恶意代码。或者最好不要使用
eval
。根据您的需求,您可能会找到一个更合适、更严格的功能来实现您的目标。例如,如果您希望只计算客户编写的数学表达式,您可能会发现一个专门为此而设计的库,而不是使用通用的
eval
语句。

您的意思是
$scope.UnitDetails[i]=volume
..?什么是
$scope.UnitDetails
?您的意思是
var volume={}?另外,显示您得到的错误可能会很有用。在一个公共论坛上问我为什么会出现错误而没有实际显示错误,我觉得很奇怪。你会遇到什么错误。很酷,但是这个
$scope.UnitDetails
变量是什么?在哪里申报?如何申报?我希望你能意识到,从一个没有魔法水晶球的人的角度来看,能够读懂别人的思想/代码是非常困难的。你是指
$scope.UnitDetails[I]=volume
..?什么是
$scope.UnitDetails
?你是指
var volume={}?另外,显示您得到的错误可能会很有用。在一个公共论坛上问我为什么会出现错误而没有实际显示错误,我觉得很奇怪。你会遇到什么错误。很酷,但是这个
$scope.UnitDetails
变量是什么?在哪里申报?如何申报?我希望你能意识到,从一个没有魔法水晶球的人的角度来看,能够读懂别人的想法/代码是非常困难的。如何给出单行if条件以在该评估中检查null。类似于如果
eval语句
返回NAN或undefined,则存储为0如何给出单行if条件以在该eval中检查null。如果
eval语句返回NAN或undefined,则存储为0
for (var i = 0; i < $scope.UnitDetails.length; i++) {
    $scope.UnitDetails[i].volume = [{
        Volume_AL: eval($scope.VolumeFormula.AL),
        Volume_BL: eval($scope.VolumeFormula.BL),
        Volume_CL: eval($scope.VolumeFormula.CL),
        Volume_DL: eval($scope.VolumeFormula.DL)
    }];
}