Источник: Nuances of Programming Иногда бывает нужно получить все повторяющиеся значения из массива JavaScript. В этой статье мы рассмотрим способы получения всех неуникальных значений в массиве JavaScript. Array.prototype.filter Один из таких способов связан с использованием метода filter массива JavaScript для возвращения массива, соответствующего заданному условию. Он принимает функцию обратного вызова, возвращающую условие, которое должно быть у каждого возвращаемого элемента. Задействуя метод filter вместе с вызовом метода indexOf в функции обратного вызова, мы проверяем, является ли встреченный элемент первым. Для этого в массиве, в котором вызывается filter, вызываем indexOf, получаемый из третьего параметра функции обратного вызова. Затем проверяем, совпадает ли возвращаемый индекс с тем, которому соответствует итерируемый элемент. Например, напишем следующее: const duplicates = [1, 2, 2, 4, 3, 4].filter((e, index, arr) => arr.indexOf(e) !== index)
console.log(duplicates) Затем