Как посчитать количество одинаковых элементов в массиве js
Ответы
Вячеслав Межуревский
26 сентября 2022
Для поиска одинаковых элементов в массиве нагляднее всего воспользоваться циклом:
const nums = [1, 2, 1, 4, 5, 1, 7, 8, 1, 10];
let count = 0;
for (let i = 0; i < nums.length; i +=1 ) {
if (nums[i] === 1) {
count += 1;
}
}
// Вывод: 4
Или например, необходимо посчитать сколько раз встречается каждая цифра в исходном массиве, с помощью reduce:
const nums = [1, 2, 7, 4, 5, 2, 7, 8, 1, 10];
const res = nums.reduce((acc, i) => {
if (acc.hasOwnProperty(i)) {
acc[i] += 1;
} else {
acc[i] = 1;
}
return acc;
},{})
// Вывод: { '1': 2, '2': 2, '4': 1, '5': 1, '7': 2, '8': 1, '10': 1 }
3
2
Aleksey
05 апреля 2023
Еще один способ. Можно использовать метод sort
:
const arr = [1, 5, 0, 3, 5, 8, 9];
const unique = [...new Set(arr)];
const diff = arr.length - unique.length;
В переменной unique
мы храним массив уникальных значений, полученный из основного массива arr
. Для этого мы воспользовались конструкцией new Set()
для создания новой коллекции уникальных значений. С помощью десктруктуризации мы перевели этот объект коллекции к массиву. Затем, с помощью свойства length
на обоих массивах мы получили разницу, которая равна количеству элементов в массиве с одинаковыми значениями.
0
1