如何在angularjs中删除一个列表中的重复元素并将其放入另一个列表中

如何在angularjs中删除一个列表中的重复元素并将其放入另一个列表中,angularjs,Angularjs,我有三张单子 1) $scope.edit.user 用户列表中的每个值都包含对象形式的“id”、“name”、“number” . 第二个列表是 2) $scope.edit.duplicateUser 此列表仅包含数组形式的ID ex:[12,13,14] 如果duplicateUser列表包含用户列表中存在的某些用户,则我希望从以下位置拼接该用户对象: $scope.edit.user 并添加到第三个列表中,即: $scope.edit.intersectedUsers = []

我有三张单子

1) $scope.edit.user
用户列表中的每个值都包含对象形式的“id”、“name”、“number” . 第二个列表是

2) $scope.edit.duplicateUser
此列表仅包含数组形式的ID ex:[12,13,14]

如果duplicateUser列表包含用户列表中存在的某些用户,则我希望从以下位置拼接该用户对象:

$scope.edit.user
并添加到第三个列表中,即:

$scope.edit.intersectedUsers = []

我建议您使用lodash来处理列表/数组/集合:

使用:

如果对$scope.edit.duplicateUser进行了排序,则可以通过将
true
添加到
\uxof()
来执行二进制搜索,从而提高性能

$scope.edit.intersectedUsers = _.remove($scope.edit.user, 
    function(u) { return _.indexOf($scope.edit.duplicateUser, u.Id, true) > -1; });

在客户端讨论集合操作时,应该使用下划线\lodash

    $scope.edit.intersectedUsers = _.find($scope.edit.user, function(user){
        if (_.contains($scope.edit.duplicateUser, user.id){
            return user;
        }
    }); //intersectedUsers will contain only the users with id from duplicateUser

    $scope.edit.user = _.difference([$scope.edit.user, $scope.edit.intersectedUsers); 
//User list will be modified to itself without the duplicated users
安装说明和有关的更多信息


安装说明和有关

的更多信息是否按Id对阵列进行了排序?$scope.edit.user可能包含几个具有相同Id的用户?或者每个ID都有一个对象。我们可以对下划线.js执行相同的操作吗?
    $scope.edit.intersectedUsers = _.find($scope.edit.user, function(user){
        if (_.contains($scope.edit.duplicateUser, user.id){
            return user;
        }
    }); //intersectedUsers will contain only the users with id from duplicateUser

    $scope.edit.user = _.difference([$scope.edit.user, $scope.edit.intersectedUsers); 
//User list will be modified to itself without the duplicated users