lodash dropWhile不工作

时间:2016-02-26 12:13:22

标签: angularjs function lodash

我用lodash编写了这个函数,但有时它工作正常而不是其他的,它编写得很好或者我的语法错了吗?

    myApp.controller('geoCtrl', function($scope, Canchas){

    var filtro = [];

    $scope.filtroJugadores = function(){

        if($scope.j5===true){
            var j5 = _(filtro).push({'jugadores5':true});
            j5 = j5.commit();
        }else{
            _.dropWhile(filtro, ['jugadores5', true]);
            //index = _.indexOf(filtro, _.find(filtro, {'jugadores5':true}));
            //if (index != -1){filtro.splice(index, 1, {'jugadores5':false})};
        }

        if($scope.j9===true){
            var j9 = _(filtro).push({'jugadores9':true});
            j9 = j9.commit();
        }else{
            _.dropWhile(filtro, ['jugadores9', true]);

            //index = _.indexOf(filtro, _.find(filtro, {'jugadores9':true}));
            //if (index != -1){filtro.splice(index, 1, {'jugadores9':false})};
        }

        filtro = _.uniqBy(filtro, 'jugadores5');
        filtro = _.uniqBy(filtro, 'jugadores9');

        console.log(filtro);
    }
});

plunker

1 个答案:

答案 0 :(得分:0)

使用_.uniqWith

    myApp.controller('geoCtrl', function($scope, Canchas){

    var filtro = [];

    $scope.filtroJugadores = function(){
        filtro = _.uniqWith(filtro, _.isEqual);
        if($scope.j5===true){
            var j5 = _(filtro).push({'jugadores5':true});
            j5 = j5.commit();
        }else{
            if(_.some(filtro, {'jugadores5':true})) {
                _.dropWhile(users, ['jugadores5', true]);
            }
        }

        if($scope.j9===true){
            var j9 = _(filtro).push({'jugadores9':true});
            j9 = j9.commit();
        }else{
            if(_.some(filtro, {'jugadores9':true})) {
                _.dropWhile(filtro, ['jugadores9', true]);
            }
        }
        console.log(filtro);
    }
});