Martovitskiy
@Martovitskiy

Как пересчитать одинаковые элементы в массивах?

Есть около 10 массивов. Есть массив в который слиты все.
let mainArr = [
    "496903611692199",
    "245970100361652",
    "711023259278888",
    "30167380",
    "711023259278888",
    "30167380",
    "245970100361652",
    "555"
]

let arr1 = [
    "496903611692199",
    "245970100361652",
    "711023259278888",
    "30167380",
];
let arr2 = ["711023259278888",
    "30167380"
]
let arr3 = ["245970100361652", "555"]


как правильно пересчитать совпадения в массиве? сравнить их друг с другом или со слитым?
  • Вопрос задан
  • 159 просмотров
Решения вопроса 2
sergiks
@sergiks Куратор тега JavaScript
♬♬
Создать объект (словарь) где ключи – элементы массивов, а значения – число, сколько раз встретились.
const counter = {};

// пройти по массиву, заполняя counter
arr.forEach((el) => counter[el] = (counter[el] || 0) + 1);

Получится что-то типа
{
  555: 1,
  30167380: 2,
  496903611692199: 1,
  245970100361652: 2,
  711023259278888: 2
}
Ответ написан
@StiflerProger
В любом случае, удобней уже в слитом сравнивать
mainArr.reduce((acc, cur) => {
    if (!acc[cur]) acc[cur] = 0;
    acc[cur]++;
    return acc;
}, {})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы