Я пытаюсь отфильтровать или удалить некоторые дублированные объекты из массива объектов. Вот что у меня есть.Фильтровать дублированные объекты в массиве и фильтр по двум свойствам
var itemsToFilter = [];
var filteredItems = [];
var items = [];
function filterRepeated (data) {
_.forEach(data, function(e) {
if(e.readingTime) {
itemsToFilter.push(e);
} else {
items.push(e);
}
});
filteredItems = _.uniq(itemsToFilter, 'id');
items.push.apply(items, filteredItems);
return items;
}
Что я делаю с этой функцией, это отделить некоторые объекты, если они имеют свойство readTime. Элементы массиваToFilter содержат повторяющиеся объекты, я пытался фильтровать по id и readTime с чем-то вроде этого.
var a = itemsToFilter.filter(function(n) {
console.log(n);
if(n['id'].indexOf() !== -1 && n['readingTime'].indexOf() !== -1) {
console.log(n);
//return true;
} else {
return false;
}
});
Но он ничего не делает.
Формат объектов Я пытаюсь фильтровать:
[{time: 1450672782667, sequence_number: 55240001, readingTime: 1450669920000, id: "56572093c007a1164a02a78c", tipo: "Posición actualizada"}, {time: 1450672782667, sequence_number: 55240001, readingTime: 1450669920000, id: "56572093c007a1164a02a78c", tipo: "Posición actualizada"}]
Спасибо.
Вы можете видеть ошибки в консоли? –
Нет просто вернуть пустой массив. – Diego
Ваш вопрос непонятен. Что именно вы пытаетесь сделать здесь. Вы пытаетесь фильтровать дублированные объекты или фильтровать объекты, имеющие опцию 'readTime', или пытаетесь фильтровать объекты, которые имеют одинаковое значение для' readTime'? В вашем примере массив содержит только один объект, причем 'readTime' определяется дважды. Пожалуйста, объясните, спасибо. – DavidDomain