Описание функции

Джон работает в магазине одежды. У него есть большая куча носков, которые он должен рассортировать по цветам для продажи. Учитывая массив целых чисел, представляющих цвет каждого носка, определите, сколько существует пар носков совпадающих цветов.

Функция sockMerchant должна возвращать целое число, представляющее количество доступных совпадающих пар носков. Он имеет следующие параметры:

  • n: количество носков в стопке
  • ar: цвета каждого носка

Понимание проблемы

Нам дан массив, содержащий различные варианты носков. Для начала давайте создадим объект с именем socks, который будет включать количество элементов для каждого значения ключа. Затем мы будем зацикливаться внутри массива ar и непрерывно добавлять ключи/значения к объекту:

В случае нового типа носка мы добавляем его к объекту в строке 4 и инициализируем его 0, потому что в противном случае ему будет присвоен нуль, что не позволит нам добавить его позже (строка 5). Затем мы перебираем ключи объекта socks, поэтому, когда мы вызываем Object.keys, мы получаем массив ключей в этом объекте.

После объявления переменной count она используется для добавления количества пар для каждого ключа. Мы находим количество носков для каждого типа с помощью socks[sock], делим его на два (для представления пары), а затем округляем в меньшую сторону, потому что мы не хотим включать отдельные элементы. Вот полное решение:

Надеюсь, это поможет! Не стесняйтесь обращаться к любым путаницам, поскольку мы все вместе в этом путешествии. Будьте в безопасности и хорошего дня! :)