У меня есть массив объектов в AngularJS, как это:
var example = [ {id:'1',
read: false,
folder: 'inbox'},
{id:'2',
read: true,
folder: 'inbox'},
{id:'3',
read: true,
folder: 'trash'},
{id:'4',
read: false,
folder: 'trash'}];
И мне нужно, чтобы удалить любой объект, который имеет атрибуты folder == 'trash'
и read == true
в то же время.
Поэтому я попытался сделать это с помощью lodash:
example = lodash.filter(example, function(value, index) {
return (value.folder !== 'trash') && (value.read !== true);
});
Он должен удалить только элемент # 3, но он удаляет # 3 и # 4.
Очевидно, я не понимаю, как работает lodash.filter.
Кто-то может помочь?
Неправильный логический оператор. установите условие в folder == 'trash'
и read == true
и отмените его.
example = lodash.filter(example, function(value) {
return (value.folder == 'trash' && value.read == true) == false;
});
Оператор! == неверен. используйте == вместо этого.
return (value.folder == 'trash' && value.read == 'true') == false;
Вам нужно удалить цитаты вокруг "true". Вы хотите сохранить все элементы, в которых папка не является "мусором", или свойство read не является true
поэтому ваша логика будет выглядеть так:
return (value.folder !== 'trash') || (value.read !== true);