Я использую Angular2, и у меня есть массив с объектами Date (~ 1000). Большинство объектов даты имеют точно такие же даты (например, 2016_11_02; Даты не имеют часов & минут). Обычно в массиве должно быть около ~ 10-20 различных дат.Javascript: Filter Array with duplicate Dates
Теперь я хочу отфильтровать этот массив и удалить дубликаты дат. Итак, в конце должно быть около ~ 10-20 Date-Objects в массиве.
Here's код, который я пробовал:
let uniqueArray = duplicatesArray.filter(function(elem, pos) {
return channelEPGDates.indexOf(elem) == pos;
});
console.log('unique: ' + uniqueArray.length);
Я знаю, что это не правильно, причиной уникального массива имеет ту же длину, что и старый массив. Но как я могу сравнить сам Даты в функции фильтра?
Большое спасибо!
Если вы хотите быть эффективным об этом, и вы только на более поздних версиях браузеров, тогда [Array.reduce] (https://developer.mozilla.org/en -US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce) - хорошая ставка. –