Как посчитать количество дубликатов каждого элемента массива?
Нужно выводить количество дубликатов каждого элемента массива, сначала сортируем, а затем говорим что если этот элемент равен следующему значит считаем ++
function d(arr) {
const array = arr.sort((a, b) => a - b)
let c = 0;
return array.map((arr, i) => arr == arr[i + 1] ? c++ : 1)
}
Ответы (1 шт):
Автор решения: Vasily
→ Ссылка
Можно воспользоваться структурами данных Map:
const countDup = dups => {
const map = new Map()
for (const dup of dups) {
map.set(dup, map.get(dup) + 1 || 1)
}
return map
}
const result = countDup([1, 2, 3, 1, 7, 10, 3])
console.log(result)
// Map { 1 => 2, 2 => 1, 3 => 2, 7 => 1, 10 => 1 }
// в сниппете map не отображается
console.log(Array.from(result))
// [ [ 1, 2 ], [ 2, 1 ], [ 3, 2 ], [ 7, 1 ], [ 10, 1 ] ]
console.log(Object.fromEntries(result))
// {
// "1": 2,
// "2": 1,
// "3": 2,
// "7": 1,
// "10": 1
// }