我在$scope.firstorder
基于某些条件,例如数组包含元素数量。如果Quantity为zero
,我需要从数组列表中删除此数组。
我该怎么做?
这是我的代码:
for (index in $scope.firstorder)
{
var quantity = $scope.firstorder[index][0].Quantity;
if (quantity == 0)
{
//Remove the array from $scope.firstOrder;
}
}
答案 0 :(得分:1)
You can use filter combined with Array functions.
$scope.firstorder = $scope.firstorder.filter(outerList=>{
return outerList.filter(innerList=>{
return innerList.Quantity === 0;
}).length === 0;
});
If you want to modify existing array, you can "splice" after finding the index of the arrays which should be deleted.
Thanks.
答案 1 :(得分:0)
使用它也许它会帮助你。
$scope.block = $scope.block.filter(function (arr) {
return arr.length;
});
答案 2 :(得分:0)
我认为在迭代它们时修改结构是一种不好的做法(即使可能)。
我会保存所有受影响的索引并在以后删除它们(可能不那么有效但安全)。
var indexex = [];
for (index in $scope.firstorder) {
var quantity = $scope.firstorder[index][0].Quantity;
if (quantity == 0) {
a.push(index);
}
}
for (i in index) {
$scope.splice(i, 1);
}
(我不确定代码是否完美,我在这里直接编码,用IDE检查,但我认为这个想法就在那里)
希望它有所帮助!