Вот что я бы сделал.
Я предпочитаю это, потому что вы можете легко добавлять объекты в items
и отфильтровывать их, или иметь полностью динамический
function getFilteredItems(myItems) {
var items = [{name:'item1'}, {name:'item2'}];
if( myItems.reduce((c, item) => c += items.map(obj => obj.name).includes(item.name) , 0) == 2 ) { items.shift(); };
return myItems.filter(item => !items.map(obj => obj.name).includes(item.name) )
}
если items
не заполнено объектами
function getFilteredItems(myItems) {
var items = ['item1', 'item2'];
if( myItems.reduce((c, item) => c += items.includes(item.name) , 0) == 2 ) { items.shift(); };
return myItems.filter(item => !items.includes(item.name) )
}
РЕДАКТИРОВАТЬ: без функции стрелок
// items is objects
function getFilteredItems(myItems) {
var items = [{name:'item1'}, {name:'item2'}];
if( myItems.reduce(function(c, item) { return c += items.map( function(obj) { return obj.name}).includes(item.name)} , 0) == 2 ) { items.shift(); };
return myItems.filter( function(item) { return !items.map( function(obj) {return obj.name}).includes(item.name)} )
}
// items is strings
function getFilteredItems(myItems) {
var items = ['item1', 'item2'];
if( myItems.reduce(function(c, item){ return c += items.includes(item.name) } , 0) == 2 ) { items.shift(); };
return myItems.filter( function(item) { return !items.includes(item.name)} )
}