Gaurav123
Gaurav123

Reputation: 5219

Best way to remove the object from an array using AngularJs

I have an array of objects. I want to remove multiple objects from that array.

I have used below code which is working absolutely fine, but I need to check with you guys if there is better way to do that or its fine.

I have done it with angularjs and js.

Orders is the main array on which operations are performed. Order is array of selected items to remove from main array Orders

$scope.Order = {};
$scope.removeOrders = function () {
        angular.forEach($scope.Order, function (data) {
            for (var i = $scope.Orders.length - 1; i >= 0; i--) {
                if ($scope.Orders[i].Name == data.Name) {
                    $scope.Orders.splice(i, 1);
                }
            }
        });
        }

Upvotes: 0

Views: 53

Answers (1)

Cerbrus
Cerbrus

Reputation: 72957

You can make it quite a bit shorter using filter:

$scope.removeOrders = function () {
    $scope.Orders = $scope.Orders.filter(function(order){
        return !$scope.Order.some(function(remove){
            return remove.Name === order.Name;
        });
    }); // remove the order from $scope.Orders, if it's name is found in $scope.Order
};

Upvotes: 1

Related Questions