2015-05-22 5 views
-1

Я хочу удалить пользователей из массива removeUser на основе значений userName в массиве removeUser с использованием lodash. Вот мой ввод данных:Удалить элементы в массиве из массива с помощью lodash

{"users":[ 
{"title":"Mr", "firstName":"John", "lastName":"Doe", "email":"[email protected]", "userName" : "jdoe", "groups": [{"name": "Manager"}]}, 
{"title":"Ms", "firstName":"Anna", "lastName":"Smith","email":"[email protected]", "userName" : "asmith", "groups": [{"name": "Administrator"}, {"name": "Manager"}]}, 
{"title":"Mr", "firstName":"Peter", "lastName":"Jones", "email":"[email protected]", "userName" : "pjones", "groups": [{"name": "Administrator"}, {"name": "Manager"}]}, 
{"title":"Ms", "firstName":"Jenny", "lastName":"Otter","email":"[email protected]", "userName" : "jotter", "groups": [{"name": "Administrator"}, {"name": "Manager"}]} 
]} 

var removeUser = ['jdoe', 'asmith']; //usernames of users to be removed 

Это то, что я имею, но мне нужен цикл Еогеасп:

_remove(users, { userName: [removeUser]}) 

, так что я в конечном итоге с обновленным users массива вдоль линий:

{"users":[ 
{"title":"Mr", "firstName":"Peter", "lastName":"Jones", "email":"[email protected]", "userName" : "pjones", "groups": [{"name": "Administrator"}, {"name": "Manager"}]}, 
{"title":"Ms", "firstName":"Jenny", "lastName":"Otter","email":"[email protected]", "userName" : "jotter", "groups": [{"name": "Administrator"}, {"name": "Manager"}]} 
]} 

ответ

1

Вы можете использовать callback as second argument, как и

var data = {"users": [ 
 
    {"title":"Mr", "firstName":"John", "lastName":"Doe", "email":"[email protected]", "userName" : "jdoe", "groups": [{"name": "Manager"}]}, 
 
    {"title":"Ms", "firstName":"Anna", "lastName":"Smith","email":"[email protected]", "userName" : "asmith", "groups": [{"name": "Administrator"}, {"name": "Manager"}]}, 
 
    {"title":"Mr", "firstName":"Peter", "lastName":"Jones", "email":"[email protected]", "userName" : "pjones", "groups": [{"name": "Administrator"}, {"name": "Manager"}]}, 
 
    {"title":"Ms", "firstName":"Jenny", "lastName":"Otter","email":"[email protected]", "userName" : "jotter", "groups": [{"name": "Administrator"}, {"name": "Manager"}]} 
 
]}; 
 

 
var removeUser = ['jdoe', 'asmith']; 
 

 
_.remove(data.users, function(el) { 
 
    // if el.userName exists in removeUser return true and remove it from data.users 
 
    return removeUser.indexOf(el.userName) >= 0; 
 
}); 
 

 
console.log(data);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.9.0/lodash.js"></script>

Смежные вопросы