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