gpt4 book ai didi

javascript - object.push(array) 不起作用

转载 作者:行者123 更新时间:2023-12-01 03:41:26 25 4
gpt4 key购买 nike

我正在使用 for 循环来逐个获取单位,在循环内我得到如下所示的卷数组。现在我想将该数组推送到相应的单元,因此我使用了推送,但在这里我收到了错误。

我的代码如下

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

谁能找到我哪里做错了

编辑

当我尝试如下时,它会在对象中创建另一个数组,如下所示

 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.push(volume);
}

我得到了什么

   $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 }
]
},
{
Volume_CL:0,
Volume_EQ:12,
Volume_PH:54,
Volume_RW: 24
}]

我的预期:

  $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
}]
},
]

最佳答案

要获得所需的结果,您可以将 volume 数组动态附加到 $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)
}];
}

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

关于javascript - object.push(array) 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43846513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com