fandro
fandro

Reputation: 4903

Simplify expression with lodash

I want to simplify this function with lodash but I don't know how to do that can you help me ?

function _findMembers(usersAvailable,listOfUsers){
    console.log("listOfUsers")
    console.log(listOfUsers)
    var members = [];
    for(var i=0; i<_.size(usersAvailable);i++){
        for(var j=0; j<_.size(listOfUsers); j++){
            if(usersAvailable[i].local.email == listOfUsers[j]){
                var user = usersAvailable[i];
                user.selected = true;
                members.push(user);
            }
        }
    }
    console.log("members")
    console.log(members)
    return members;
}

Upvotes: 0

Views: 164

Answers (2)

pQuestions123
pQuestions123

Reputation: 4611

You don't need to use lodash. Just use the standard javascript filter function:

function _findMembers(usersAvailable, listOfUsers){    
    return usersAvailable.filter(function(userAvailable) {
        return listOfUsers.indexOf(userAvailable.local.email) > -1;
    });
}

Upvotes: 2

Aaleks
Aaleks

Reputation: 4343

Using lodash filter function of loash

and includes javascript function

You could try something like this:

var members = usersAvailable.filter(function (currentUser) {
        if(listOfUsers.includes(currentUser.local.email)){
            currentUser.selected=true;
            return true;
        }else{
            return false
        }
        return listOfUsers.includes(currentUser.local.email);
    });

Upvotes: 1

Related Questions