如何从一组数组中删除数组?

时间:2017-06-09 09:20:31

标签: angularjs

我在$scope.firstorder

中有一组数组

Image of array group

基于某些条件,例如数组包含元素数量。如果Quantity为zero,我需要从数组列表中删除此数组。

我该怎么做?

这是我的代码:

for (index in $scope.firstorder)
{
var quantity = $scope.firstorder[index][0].Quantity;
if (quantity == 0)
{
    //Remove the array from $scope.firstOrder;
}

}

Image of group of arrays

3 个答案:

答案 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检查,但我认为这个想法就在那里)

希望它有所帮助!